无法连接远程服务器mysql数据库

1. 排除网络或防火墙问题

配置防火墙,开启3306端口

# vim /etc/sysconfig/iptables

-A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT(允许3306端口通过防火墙)
/etc/init.d/iptables restart(重启防火墙使配置生效)

2. 检查用户访问权限

MySQL建用户的时候会指定一个host,默认是127.0.0.1/localhost,那么这个用户就只能本机访问, 其它机器用这个用户帐号访问会提示没有权限,host改为%,表示允许所有机器访问。

你想root用户名使用root密码从任何主机连接到MySQL服务器的话。

登陆远程服务器

# mysql -uroot -proot

查看host:

use mysql
select host,user from user;

这里并没有开启 允许远程连接

运行命令:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

 再次查看

select host,user from user;

设置成功退出mysql  > quit

重启mysql

# service mysql restart

3、配置云服务器的安全策略组

 4、查看服务器3306端口是否运行

进入到你的远程服务器输入命令

$ netstat -ntlp

运行lsof -i:3306命令行查询3306是否被使用 

$ lsof -i:3306 

运行ps aux|grep MySQL命令行看mysql是否在运行 

$ ps aux|grep mysql

有时候是没有运行的

mysql服务虽然在运行,可以在本地操作,但没有运行在3306端口!!!fuck!

如果你是用的linux版的xampp就蛋疼了!

此时修改mysql的配置文件如在xampp情况是在 /opt/lampp/etc/my.cnf中

$ vim /opt/lampp/etc/my.cnf

将此段下面的参数skip-networking注释重启mysql服务,远程连接mysql正常。 
#skip-networking 
原因:参数skip-networking起的作用是:mysql不再在TCP / IP端口上进行监听,导致无法远程连接。

 

posted @ 2017-08-10 12:32  丶老中医  阅读(2695)  评论(0编辑  收藏  举报
一切已经开始©2018 丶老中医