在mysql遠程連接時出現ERROR 2003錯誤的很多種,下面我來給大家介紹兩種解決此問題的方法,有需要的同學可參考。
問題代碼代碼
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.0.19' (111)
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
#
# 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;