在CentOS6.5上安裝了Mysql5.6,,本地服務啓動成功,可是遠程使用Navicat沒法遠程鏈接到MySQL數據庫,爲了解決這個問題,方法以下:mysql
(1)先將MySQL服務停掉
# service mysqd stopsql
(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遠程訪問socket
# 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>quittcp
(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 startui