一.問(wèn)題的提出
/usr/local/webserver/mysql/bin/mysql -u root -h 172.29.141.112 -p -S /tmp/mysql.sock
Enter password:
ERROR 2003 (HY000): Can't connect to MySQL server on '172.29.141.112' (113)
二.問(wèn)題的分析
出現(xiàn)上述問(wèn)題,可能有以下幾種可能
1. my.cnf 配置文件中 skip-networking 被配置
skip-networking 這個(gè)參數(shù),導(dǎo)致所有TCP/IP端口沒(méi)有被監(jiān)聽(tīng),也就是說(shuō)出了本機(jī),其他客戶(hù)端都無(wú)法用網(wǎng)絡(luò)連接到本mysql服務(wù)器
所以需要把這個(gè)參數(shù)注釋掉。
2.my.cnf配置文件中 bindaddress 的參數(shù)配置
bindaddress,有的是bind-address ,這個(gè)參數(shù)是指定哪些ip地址被配置,使得mysql服務(wù)器只回應(yīng)哪些ip地址的請(qǐng)求,所以需要把這個(gè)參數(shù)注釋掉。
3.防火墻的原因
通過(guò) /etc/init.d/iptables stop 關(guān)閉防火墻
我的問(wèn)題,就是因?yàn)檫@個(gè)原因引起的。關(guān)閉mysql 服務(wù)器的防火墻就可以使用了。
三.問(wèn)題的解決
1. 如果是上述第一個(gè)原因,那么 找到 my.cnf ,注釋掉 skip-networking 這個(gè)參數(shù)
sed -i 's%skip-networking%#skip-networking%g' my.cnf
2. 如果是上述第二個(gè)原因,那么 找到 my.cnf ,注釋掉 bind-address 這個(gè)參數(shù)
sed -i 's%bind-address%#bind-address%g' my.cnf
sed -i 's%bindaddress%#bindaddress%g' my.cnf
最好修改完查看一下,這個(gè)參數(shù)。
3.如果是上述第三個(gè)原因,那么 把防火墻關(guān)閉,或者進(jìn)行相應(yīng)配置
/etc/init.d/iptables stop
四.參考
http://hi.baidu.com/vbkan/blog/item/cd5035030cefee793812bb56.html
http://dev.firnow.com/course/7_databases/mysql/myxl/20090820/169010.html