Это сообщение об ошибке генерируется клиентом (а не сервером), потому что была предпринята попытка подключения к серверу, но сервер недоступен.
Возможны различные причины этого:
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
service iptables status
person
guido
schedule
01.08.2011