Проблемы с подключением к серверу MySQL: ОШИБКА 2003 (HY000)
- IP-адрес сервера: 172.16.1.169
- имя пользователя mysql: root
- пароль: ххххххххх
- имя базы данных: пример
Я пытаюсь получить доступ к базе данных с клиента (IP 172.16.0.114). И сервер, и клиент работают под управлением дистрибутива Fedora Linux. Какие параметры должны быть настроены и какие они должны быть установлены для сервера и клиента? Как получить доступ к конкретной базе данных (здесь, "пример")? Я пытался, но я получил ошибку:
ОШИБКА 2003 (HY000): Невозможно подключиться к серверу MySQL на 172.16.1.169.
4 ответа
Это сообщение об ошибке генерируется клиентом (а не сервером), потому что была предпринята попытка подключения к серверу, но сервер не был доступен.
Существуют различные возможные причины этого:
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
В конфигурационном файле MySQL (/etc/mysql/my.cnf) комментарий "#bind-address = 127.0.0.1"
Сохраните и перезапустите службу MySQL.
Открыть конфигурационный файл MySQL
sudo vim my.cnf
Убедитесь, что следующее закомментировано.
# Пропуск внешний замок
# Скип-сетей
#bind-address = xx.xx.xx.xx
Сохранить и выйти
Перезапустите службу MySQL
Я думаю пункт назначения mysql
Сервер может использовать другой порт. Сначала вы должны найти правильный порт.
Как только вы получите правильный порт, вы можете подключиться к этому mysql
сервер с помощью этой команды:
mysql -h 172.16.1.169 -P (port) -u root -p (password)