远程访问服务器上的MySQL数据库,发现root远程连接不上

Posted 73tong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了远程访问服务器上的MySQL数据库,发现root远程连接不上相关的知识,希望对你有一定的参考价值。

远程访问服务器上的mysql数据库,发现root远程连接不上,提示错误:“1045-Access denied for user root@...”

解决办法如下,执行命令:

mysql> use mysql;

mysql> select host,user from user;

查看结果是不是root用户仅允许本地(localhost)登录,下面这个截图就是这种情况.

 

是的话,就要修改它的host为%,表示任意IP地址都可以登录.

GRANT ALL PRIVILEGES ON *.* TO \'root\'@\'%\' IDENTIFIED BY \'数据库密码\' WITH GRANT OPTION; 

mysql> flush privileges;

把缓存flush掉.在使用update语句修改用户记录后,需要FLUSH语句告诉服务器重载授权表.

 

 还不成功?

1.启动mysql 的cmd命令

2.使用“use mysql”命令,选择要使用的数据库,修改远程连接的基本信息,保存在mysql数据库中,因此使用mysql数据库。

 

3.使用“GRANT ALL PRIVILEGES ON *.* TO \'root\'@\'%\' IDENTIFIED BY \'数据库密码\' WITH GRANT OPTION;”命令可以更改远程连接的设置。

4.使用“flush privileges;”命令刷新刚才修改的权限,使其生效。

5.使用“select host,user from user;”查看修改是否成功。

 

 

6.之后还是发现访问不了。于是进服务器本地访问看了一下。

 

 

上边截图中,最后一行  % root 的password改成和第一个一样就行。

之后就可以访问了。 

 

其他连接不上问题:

防火墙端口添加需要监听的端口
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT 

保存设置
/etc/init.d/iptables save

查看状态
/etc/init.d/iptables status 

临时关闭防火墙服务器
iptables stop

开启防火墙服务
service iptables start

开机不再启动防火墙服务
chkconfig iptables off 

以上是关于远程访问服务器上的MySQL数据库,发现root远程连接不上的主要内容,如果未能解决你的问题,请参考以下文章

设置mysql的远程访问权限

mysql给root开启远程访问权限,修改root密码

mysql给root开启远程访问权限,修改root密码(转)

CentOS 开启防火墙 firewall ,mysql 远程访问

Linux下开启mysql数据库的远程访问权限

如何让mysql以root用户远程登陆mysql数据库