由客户端(而不是服务器),因为与服务器的连接已经尝试,但服务器无法达到产生的错误信息。
有多种可能的原因到:
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