由客戶端(而不是服務器),因爲與服務器的連接已經嘗試,但服務器無法達到產生的錯誤信息。
有多種可能的原因到:
1)檢查mysqld正在運行在服務器上:
ps -ef | grep mysqld
應該返回類似:
root 2435 2342 0 15:49 pts/1 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/var/ --user=mysql
mysql 2480 2435 0 15:49 pts/1 00:00:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/var/ --user=mysql ...
要運行的後臺程序服務,在redhat/fedora/centos上運行:
service mysqld start
或在Fedora釋放> = 16,這依賴於systemd:
systemctl start mysqld.service
和用於在系統啓動時使守護程序自動啓動:
systemctl enable mysqld.service
2)檢查端口上的mysqld是在服務器上運行:
netstat -lnp | grep mysql
應該返回:
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 2480/mysqld
unix 2 [ ACC ] STREAM LISTENING 8101 2480/mysqld /tmp/mysql.sock
後者是用於本地連接的套接字,第一個用於網絡的tcp端口(默認爲3306)。如果端口不是默認端口,則必須在客戶端上設置連接端口。如果使用mysql客戶端:
mysql dbname -uuser -ppasswd -P<port> ...
3)是在不同的網絡地址,檢查服務器爲您從連接網addrees監聽:在文件/etc/my.cnf
搜索該行:
bind_address=127.0.0.1
如果地址是127.0.0.1,則只允許本地連接;如果它是172.16.1.0,則無法從172.16.2連接。xxx
4)檢查服務器上是否沒有運行防火牆並阻止連接到mysql端口(3306是默認端口);如果它是一個RedHat/Fedora的/ CentOS的運行
service iptables status
您有不同的網絡,例如:172.16.0。*和172.16.1。*。你可以ping 172.16.0.114到172.16.1.169嗎? – Arman 2011-03-07 12:31:41
相同的網絡....我可以ping ... – Jagan 2011-03-07 12:47:01
同樣的問題在這裏。 [guido的答案] [1]解決了我的問題。 Thx。 [1]:http://stackoverflow.com/a/6897627/2760065 – robersonfox 2013-09-09 02:07:04