MySQL无法远程连接的原因汇总

MySQL在服务器上无法在远程连接,原因有很多,大概总结了一下:

1.没有权限

  mysql库的user表里设置权限

  例子:

 第一种方法:

grant all privileges on  *.*  to root@'localhost' identifies by '123456';

解释:给localhost主机(本地)的root用户设置123456密码并开所有权限对所有库的所有表(*.*);如果要不限制主机 则把localhost改成 %

    第二种方法:

或者更改user表里的数据达到效果

update user set host="%" where user="root" and host="localhost";

OK.搞定。当然,你也可以再生成一个专门用于远程连接的账号,只给增删改查的权限,因为root权限太大了有点危险

grant select,insert,update,delete on *.* to suliang@"%" Identified by "123456";

再补充个改用户密码的sql(在本例中没用)

update user set password=password('123456') where user='root' ;

user表里的host,user,password

localhost 127.0.0.1代表本机   

最后,记得刷新mysql的权限

flush privileges;

2.防火墙开放3306端口

编辑linux防火墙

  vim 打开 /etc/sysconfig/iptables文件 

-A INPUT -p tcp --dport 3306 -j ACCEPT

此处-A和-I都可以  前者是追加,后者是插入

如果没有iptables这个文件,可以直接执行 

iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

然后执行 iptables -S 即可保存

 

3.更改MySQL配置文件

mysql配置文件 my.cnf里面有个

bind_address(绑定地址)的配置

看看默认是不是   bind_address="127.0.0.1"

如果是,则把127.0.0.1改成 0.0.0.0

然后:wq之后重启mysql即可。

 

总结:MySQL无法远程连接原因诸多。以上三个是最常见的原因,上述三个原因中,第一个原因最常见。

 

posted @ 2015-04-28 11:31  程序喵  阅读(132)  评论(0)    收藏  举报