1. 程式人生 > >解決CentOS6.5下MySQL5.6無法遠端連線的問題

解決CentOS6.5下MySQL5.6無法遠端連線的問題

在CentOS6.5上安裝了Mysql5.6,,本地服務啟動成功,但是遠端使用Navicat無法遠端連線到MySQL資料庫,為了解決這個問題,方法如下:

(1)先將MySQL服務停掉
# service mysqd stop


(2)檢視MySQL配置檔案
# vi /etc/my.cnf
特別要留意其中的兩項:bind_address和skip_networking,bind_address一定不能為127.0.0.1,否則只能在本地連線,skip_networking一定不能出現,否則只接受unix socket而不能提供tcp socket服務,建議將bind_address和skip_networking直接都註釋掉。


(3)重啟mysql服務
#service mysqd start


(4)對使用者授權,允許指定使用者遠端訪問,最簡單的方式是將mysql庫中user表中的對應的使用者的host設定為%,亦即允許該使用者從任意ip遠端訪問

# mysql -u root -ppassword    //進入mysql控制檯
# mysql>use mysql;
# mysql>update user set host = '%' where user = 'root';    //這個命令執行錯誤時可略過
# mysql>flush privileges;
# mysql>select host, user from user; //檢查‘%’ 是否插入到

資料庫
#mysql>quit


(5)一般情況下此時就能滿足遠端訪問的要求,但對於某些系統還需要檢查防火牆設定,和ip訪問策略,以防系統對網路訪問的限制造成無法遠端訪問mysql
對於CentOS系統而言,最好檢測iptables設定。具體步驟如下
  5.1 暫停iptables服務
    # service iptables stop
  5.2 檢視iptables配置檔案
    # vi /etc/sysconfig/iptables
  5.3  也許會看到如下內容
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT

-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
~
  5.4 重啟iptables服務
    # service iptables start