3306端口不通,不一定是網絡的問題


今天,開發需要申請一個賬號:test@192.168.84.88 。連接時報了以下錯誤:

Warning: Using a password on the command line interface can be insecure.
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.84.87' (111)

 

遇到連接失敗,首先就是 ping 192.168.84.87

PING 192.168.84.87 (192.168.84.87) 56(84) bytes of data.
64 bytes from 192.168.84.87: icmp_seq=1 ttl=64 time=0.283 ms
64 bytes from 192.168.84.87: icmp_seq=2 ttl=64 time=0.712 ms

 

既然 ping 192.168.84.87沒問題,接下來就是 telnet 3306 端口了

telnet 192.168.84.87 3306
Trying 192.168.84.87...
telnet: connect to address 192.168.84.87: Connection refused

發現端口不通了之后,就可以把鍋丟給運維。然后安心的開其他事了。但,事情往往沒那么簡單,運維說他沒有限制 3306 端口。這一會就尷尬了。

 

查看一下 3306 端口是否還在

netstat -nalp | grep 3306

tcp 0 0 127.0.0.1:41758 127.0.0.1:3306 TIME_WAIT -
tcp6 0 0 :::3306 :::* LISTEN 6961/mysqld

發現本地有一個應用,使用 127.0.0.1 可以連接數據庫。難道是MySQL做了限制,上網查了下。發現MySQL有一個參數,可以限制 IP連接,就是 bind-address。下面是bind-address的解釋

bind-address 是MYSQL用來監聽某個單獨的TCP/IP連接,只能綁定一個IP地址,被綁定的IP地址可以映射多個網絡接口. 可以是IPv4,IPv6或是主機名,但需要在MYSQL啟動的時候指定(主機名在服務啟動的時候解析成IP地址進行綁定). 默認是"*"

 

接下來就是查看 my.cnf 了,發現還真的有這個參數

bind-address = 127.0.0.1

把他注釋了之后,重啟MySQL。連接正常


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM