在mysql遠程連接時出現ERROR 2003錯誤的很多種,下面我來給大家介紹兩種解決此問題的方法,有需要的同學可參考.
問題代碼:
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.0.19' (111)
這個原因就是Mysql數據庫的默認配置文件my.cnf(linux下)中的bind-address默認為127.0.0.1,所以就算你創建了可以 remote訪問的用戶,你也不能使用mysql -h命令進行訪問,若訪問就會出現上出問題,因為此時Mysql只接受localhost,所以需要把bind-address屏蔽掉.
my.cnf一般在/etc/mysql下面,如果不在使用locate my.cnf查找,修改前的my.cnf配置文件為,修改前的my.cnf配置文件代碼:
- #
- # Instead of skip-networking the default is now to listen only on
- # localhost which is more compatible and is not less secure.
- bind-address = 127.0.0.1
- #
- # Instead of skip-networking the default is now to listen only on
- # localhost which is more compatible and is not less secure.
- bind-address = 127.0.0.1
我們需要做的就是屏蔽這個bind-address代碼.屏蔽后代碼為,屏蔽后my.cnf配置文件代碼:
- #
- # Instead of skip-networking the default is now to listen only on
- # localhost which is more compatible and is not less secure.
- #bind-address = 127.0.0.1
- # --Vevb.com
- # Instead of skip-networking the default is now to listen only on
- # localhost which is more compatible and is not less secure.
- #bind-address = 127.0.0.1
現在你就可以用mysql -h命令進行你想做的操作了,如登錄系統,登陸數據庫代碼:
mysql -h 192.168.0.19 -u root -p
如果上面還不能解決可能是防火墻的問題了.
1.mysql 錯誤 ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost'
解決辦法:關閉防火墻,linux下命令:
- [root@etl01 bin]# chkconfig --list | grep -i iptables ====check fire wall
- iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
- [root@etl01 bin]# /sbin/service iptables stop ====stop fire wall
- Flushing firewall rules: [ OK ]
- Setting chains to policy ACCEPT: nat filter [ OK ]
- Unloading iptables modules: [ OK ]
2.報錯:1130-host ... is not allowed to connect to this MySql server
解決辦法:
授權形式,比如賬戶為root,密碼為root:use mysql;用root賬戶從任何主機上訪問mysql數據庫了,GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
如果你想允許用戶zz從ip為192.168.1.3的主機連接到mysql服務器,并使用123456作為密碼:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.3' IDENTIFIED BY '123456' WITH GRANT OPTION;
新聞熱點
疑難解答