網絡連接錯誤比較常見的原因是內網地址無法訪問、端口權限沒配置,前一個好解決,后一個需要檢查多個地方的配置。
連接經過: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
接下來再嘗試連接應該不成問題。