Това съобщение за грешка се генерира от клиента (не от сървъра), тъй като е направен опит за връзка със сървъра, но сървърът не може да бъде достигнат.
Има различни възможни причини за това:
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) като сте на различен мрежов адрес, проверете дали сървърът слуша за мрежовите адреси, от които се свързвате:във файл /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 run
service iptables status