Проблемы с подключением к серверу MySQL: ОШИБКА 2003 (HY000) - PullRequest
6 голосов
/ 07 марта 2011
  • IP-адрес сервера: 172.16.1.169
  • mysql имя пользователя: root
  • passwd: xxxxxxxxxx
  • имя базы данных: пример

Я пытаюсь получить доступ к базе данных с клиента (ip 172.16.0.114). И сервер, и клиент работают под управлением дистрибутива Fedora Linux. Какие параметры должны быть настроены и какие они должны быть установлены для сервера и клиента? Как мне получить доступ к конкретной базе данных (здесь, «пример»)? Я пытался, но получил ошибку:

ОШИБКА 2003 (HY000): не удается подключиться к серверу MySQL в '172.16.1.169'.

Ответы [ 4 ]

9 голосов
/ 01 августа 2011

Это сообщение об ошибке генерируется клиентом (а не сервером), поскольку была предпринята попытка подключения к серверу, но сервер не может быть достигнут.

Существуют различные возможные причины этого:

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
1 голос
/ 07 июня 2013
  1. Открыть файл конфигурации MySQL

    sudo vim my.cnf

  2. Убедитесь, что следующее закомментировано.

    # пропуск внешнего-замок

    # скип-сетей

    # bind-address = xx.xx.xx.xx

    Сохранить и выйти

  3. Перезапустить службу MySQL

0 голосов
/ 12 мая 2016

В конфигурационном файле MySQL (/etc/mysql/my.cnf) комментарий '# bind-address = 127.0.0.1'

Сохраните и перезапустите службу mysql.

0 голосов
/ 30 июля 2013

Я думаю, что сервер назначения mysql может использовать другой порт.Сначала вы должны найти правильный порт.

Как только вы получите правильный порт, вы можете подключиться к этому mysql серверу с помощью этой команды:

mysql -h 172.16.1.169 -P (port) -u root -p (password)
...