Ten komunikat o błędzie jest generowany przez klienta (nie serwer), ponieważ próbowano nawiązać połączenie z serwerem, ale nie można było się z nim połączyć.
Istnieje wiele możliwych przyczyn takiego stanu rzeczy:
1) sprawdź, czy mysqld działa na serwerze:
ps -ef | grep mysqld
powinien zwrócić coś takiego:
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 ...
Aby uruchomić usługę demona, uruchom na redhat/fedora/centos:
service mysqld start
lub w wersji Fedory>=16, która opiera się na systemd:
systemctl start mysqld.service
i do włączenia automatycznego uruchamiania demona podczas uruchamiania systemu:
systemctl enable mysqld.service
2) sprawdź port, na którym działa mysqld na serwerze:
netstat -lnp | grep mysql
powinien powrócić:
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
drugi to gniazdo dla połączeń lokalnych, pierwszy port tcp do pracy w sieci (domyślnie 3306). Jeśli port nie jest portem domyślnym, musisz ustawić port połączenia na kliencie. Jeśli używasz klienta mysql:
mysql dbname -uuser -ppasswd -P<port> ...
3) będąc pod innym adresem sieciowym, sprawdź, czy serwer nasłuchuje adresów sieciowych, z których się łączysz:w pliku /etc/my.cnf
wyszukaj linię:
bind_address=127.0.0.1
jeśli adres to 127.0.0.1, dozwolone są tylko połączenia lokalne; gdyby to był 172.16.1.0, nie można było połączyć się z 172.16.2.xxx
4) sprawdź, czy na serwerze nie działa firewall i blokuje połączenia na port mysql (domyślny port 3306); jeśli jest to uruchomienie redhat/fedora/centos
service iptables status