MySQL远程链接不上

MySQL本地能够链接可是远程连不上的问题,没有记录,今天在云上新申请的服务器上又遇到这个问题,记录一下解决过程。mysql


1.排除网络或防火墙问题
先看是否能ping通远程服务器,ping 192.168.1.211,若是不能够就是网络问题。而后,检查端口是否被防火墙挡住了,telnet 192.168.1.211 3306,若是链接失败,配置防火墙。linux

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


2.检查MySQL配置
若是开启了防火墙,telnet仍是失败,经过netstat查看3306的端口状态:
netstat -apn|grep 3306
tcp6    0    0 127.0.0.1:3306    :::*    LISTEN        13524/mysqldsql

注意地方,这说明3306被绑定到了本地。检查一下my.cnf的配置,这里能够配置绑定ip地址。
bind-address=addr
不配置或者IP配置为0.0.0.0,表示监听全部客户端链接。服务器

ps:我开启3306端口,而且检查MySQL配置以后,telent仍然失败,可是在本机telnet是ok的,再三确认了配置没有问题。后来跟咱们的ucloud帐号管理员提了一下,才知道ucloud管理后台也须要开启3306端口,用云服务器的留意这个。网络


3.检查用户访问权限
MySQL建用户的时候会指定一个host,默认是127.0.0.1/localhost,那么这个用户就只能本机访问,其它机器用这个用户账号访问会提示没有权限,host改成%,表示容许全部机器访问。tcp


最后,别忘了重启mysql使配置生效。
/etc/init.d/mysql restartsvg