网络连接错误比较常见的原因是内网地址无法访问、端口权限没配置,前一个好解决,后一个需要检查多个地方的配置。
连接经过:client -> 阿里云(安全组配置)-> 防火墙 -> MySQL;
要解决问题,需要挨个检查。

1.进入服务器登录

host#:mysql -u root -p -h 127.0.0.1 # localhost
host#:mysql -u root -p -h 102.14.20.137 # 假设是公网IP
mysql-login.png

结果localhost是没问题,而公网IP连接超时(与本地telnet测试相同)

2.MySQL访问权限配置

MySQL[(none)]>use mysql;
MySQL[(none)]>grant all privileges on . to ‘root’@’%’ identified by ‘密码’ with grant option;
MySQL[(none)]>flush privileges;

3. 检查MySQL配置 bind-address

host#:sudo vim /etc/my.cnf   #(centos)
host#:sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf ( ubuntu )
...
bind-address = 127.0.0.1 # 改成 bind-address = 0.0.0.0
...
host#:service mysqld restart #改完重启
host#:netstat -antpl | grep 3306 # 检查是否仅监听127.0.0.1

4.centos 6 iptables配置

host#:vim /etc/sysconfig/iptables  #添加如下语句:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
host#:/etc/init.d/iptables restart #重启防火墙

5.阿里云安全组配置

alicloud-security-config.png

接下来再尝试连接应该不成问题。

文章来源于互联网:阿里云MySQL外网连接connection time out

发表评论