1. 程式人生 > >阿里雲同一地區的例項的兩臺ECS Centos系統的3306埠不通的解決方案

阿里雲同一地區的例項的兩臺ECS Centos系統的3306埠不通的解決方案

申請了兩臺阿里雲的華北區的ECS,兩個內網之間其他埠都是通的,唯

獨3306埠怎麼telnet也不通。

結果也給阿里雲提了工單,阿里雲的運維人員非常支援,密切配合,也提供瞭解決思路:

主要包括:安全組未開啟3306埠、關閉伺服器的防火牆服務。

試了一遍完全行不通。

本伺服器本地執行了

 netstat -anpt 
發現3306埠已啟用

工程師要求我執行:

Centos7:

systemctl status firewalld.service

 Centos6:

service iptables status

執行完成後,發現都未啟動。

後又建議:

將mysql配置檔案中此段下面的引數skip-networking註釋重啟mysql服務 
#skip-networking 試了之後仍然不通

後來把這兩臺ECS的賬號和密碼提供給工程師排查,反饋要求這樣配置:

檢視到您的3306埠監聽在了 IPV6 本地迴環上。
MySQL 新版本預設監聽在IPv6的地址族上。
更改為監聽IPv4地址族,修改 my.cnf 新增一行配置:

bind-address = 0.0.0.0

配置完成後,仍然不通訪問。

崩潰後,重新整理思路,發現問題出在了這裡。

解決方案如下:

CentOS6:

vim /etc/sysconfig/iptables
-A INPUT -p tcp -m tcp --dport 3306 -j DROP

發現配置檔案禁用了3306,但服務未啟動,也不知道為啥攔截了,將drop改成ACCEPT,啟用防火牆後,發現網路通了,然後再禁用的時候,發現就可以使用了。

CentOS7:

firewall-cmd --zone=public --add-port=3306/tcp --permanent

啟用再禁用後,問題搞定。

寫出來以給後面的朋友不時之需。

--------------------------------------------------


本人寫的粗淺見解,謝絕轉載。