mysql服務器3306端口不能遠程連接的解決


1、網絡檢測
   1)ping主機可以;
   2)telnet 主機3306端口不可以;
     telnet 主機22端口可以;
   說明與本機網絡沒有關系;


2、端口檢測
   1)netstat -ntpl |grep 3306
    tcp        0      0 :::3306                     :::*                        LISTEN      - 
   2)netstat -ntpl |grep 22
    tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      -   
   可以看出22端口監聽所有地址,而3306只監聽本機地址(綁定了到了本地),所以遠程無法訪問。修改my.cnf 中bind-address=0.0.0.0
   對於端口只允許本機訪問,有兩個地方啟用,一個是防火牆啟用3306,一個就是mysql配置綁定本機地址。


3、防火牆檢測
   1)iptables --list查看;
   2)開啟防火牆3306端口
     vi /etc/sysconfig/iptables
     -A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT(允許3306端口通過防火牆) 
     /etc/init.d/iptables restart(重啟防火牆使配置生效)
   3)或者直接關閉防火牆;   參考:http://blog.csdn.net/fjssharpsword/article/details/50973283
   centos 7 以后是修改 firewall
  systemctl start firewalld # 啟動,

  systemctl enable firewalld # 開機啟動

  systemctl stop firewalld # 關閉

  systemctl disable firewalld # 取消開機啟動



4、mysql配置文件檢查
   檢查my.cnf的配置,bind-address=addr可以配置綁定ip地址。
   不配置或者IP配置為0.0.0.0,表示監聽所有客戶端連接。
   #ps -aux | grep mysql  查看進程ID是3340
   #ll /proc/3340 查看進程程序情況,找配置文件
   或者#which mysql 找程序路徑


5、mysql用戶訪問權限
   進入mysql數據庫
   $mysql -u root -p
   >use mysql;
   >select host,user from user;
    MySQL建用戶的時候會指定一個host,默認是127.0.0.1/localhost只能本機訪問;
    其它機器用這個用戶帳號訪問會提示沒有權限,host改為%,表示允許所有機器訪問。


免責聲明!

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



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