對navicat的新建數據庫進行配置后,在點連接測試的時候總是提示10038錯誤,一直進不去數據庫,自己在服務器中上傳一個PHP連接數據庫的文件,測試,服務器內部可以正常訪問mysql,用了win的cmd? dos窗口測試,不能用外網訪問mysql,也就是服務器內網能正常訪問,外網就不行了,下面為大家介紹一下具體的解決辦法。
推薦教程:MySQL數據庫入門視頻教程
設置mysql服務允許外網訪問,修改mysql的配置文件,有的是my.ini,有的是my.cnf【linux】.
1:設置mysql的配置文件
? ? ?/etc/mysql/my.cnf
? ? ?找到 bind-address? =127.0.0.1? 將其注釋掉;//作用是使得不再只允許本地訪問;
也可以改成bind-address? =0.0.0.0
重啟mysql:/etc/init.d/mysql restart;
2:在Linux端登錄mysql數據庫:mysql -u root -p
mysql> use mysql;
查詢host值:
mysql> select user,host from user;
如果沒有”%”這個host值,就執行下面這兩句:
mysql> update user set host=’%’ where user=’root’;
mysql> flush privileges;
這是修改后的情況
修改后測試了一下還是提示一樣的錯誤,后來發現其實是服務器的防火墻沒有關掉,在將防火墻關閉之后,就能正常連接了
附上防火墻的開啟/關閉方法
LINUX防火墻的打開與關閉方法
1) 重啟后生效?
開啟: chkconfig iptables on?
關閉: chkconfig iptables off?
2) 即時生效,重啟后失效?
開啟: service iptables start?
關閉: service iptables stop?
需要說明的是對于Linux下的其它服務都可以用以上命令執行開啟和關閉操作。?
在開啟了防火墻時,做如下設置,開啟相關端口,?
修改/etc/sysconfig/iptables 文件,添加以下內容:?
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT?
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT?