记录第一次配置 mysql 远程链接的问题,主要参考这篇文章

###1. 更改 mysql 配置

vi /etc/my.cnf

把文件里面的 skip-networking 去掉,这个是把监听端口禁止,当你根本不允许外部链接的时候可以用这个。

然后加入

bind-address=202.54.10.20

server-ip 要填的就是 mysql sever 所在的那台机器的 ip

###2. 重启 msyql

###3. 用 root 用户登录设置远程访问权限

 mysql -u root -p mysql
 mysql> CREATE DATABASE foo;
 mysql> GRANT ALL ON *.* TO bar@'10.5.1.3' IDENTIFIED BY 'PASSWORD';

这里需要说的是 10.5.1.3 是这你最终用来在远端登录 mysql client 的那台机器的 ip

###4. 配置防火墙规则 在这一步的时候要可以先把防火情停掉,

sudo /etc/init.d/iptables top

然后看看从远程的机器上的 mysql 客户端能不能连上来,

mysql --host=202.54.10.20 --user=mysql --port=3306 -p

不行的话返回头检查,可以的话在继续下面:

/sbin/iptables -A INPUT -i eth0 -s 10.5.1.3 -p tcp --destination-port 3306 -j ACCEPT

这句话是说接受 eth0 这个网卡上来自 10.5.1.3 的 对于 3306 这个端口的访问,如果加了 iptables 就连不上的话,就是 iptables 的规则有问题了,还是问题 google 吧