Подключение к удаленному серверу MySQL Issue - PullRequest
1 голос
/ 28 февраля 2012

Я пытаюсь подключиться к удаленному серверу, который я буду называть машиной A. Я создал пользователя, следуя инструкциям здесь

CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
      WITH GRANT OPTION;
CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
      WITH GRANT OPTION;

На машине A я могу запустить команду

mysql -u monty -h website.com -p

Это подключается к SQL без проблем. Однако при попытке сделать это с некоторого компьютера B я получаю сообщение об ошибке:

ERROR 2003 (HY000): Can't connect to MySQL server on 'website.com' (113)

Я также прокомментировал следующую строку:

# bind-address      = 127.0.0.1

в файле /etc/mysql/my.cnf. Все равно не повезло подключения с удаленного соединения. Какие-нибудь очевидные вещи, которые я мог бы упустить? Любая обратная связь, как всегда, очень ценится.

Ответы [ 3 ]

3 голосов
/ 28 февраля 2012

Я думаю, что ваш GRANT нуждается в исправлении.

GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'

Возможно, вам нужно быть

GRANT ALL PRIVILEGES ON *.* TO 'monty'@'website.com'

Хотя вы захотите убедиться, что все в безопасности.Обычно рекомендуется не допускать внешних подключений mysql, которые не принадлежат localhost.

0 голосов
/ 20 июня 2019

Моя проблема заключалась в том, что брандмауэр блокировал соединение.

Я использовал CentOS 7 и получал эту ошибку:

mysql -usomeuser -h192.168.194.4 -p somedb
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.194.4' (113)

Итак, я установил telnet, чтобы попытаться получить это:

[root@vm3 config]# telnet 192.168.194.4 3306
Trying 192.168.194.4...
telnet: connect to address 192.168.194.4: No route to host

и, как отмечали другие, ошибка 113 - «Нет маршрута к хосту», что не является проблемой конфигурации MySQL.

Я мог бы просто открыть 3306 для всего мира или простотот IP-адрес, с которого я подключался, но вместо этого я решил создать новую зону, так как она была предназначена для внутренней сети хоста "ESX" только моего хоста ESX.команды:

firewall-cmd --new-zone=esxlocalhost --permanent
firewall-cmd --reload
firewall-cmd --zone=esxlocalhost --permanent --add-source=192.168.194.0/24
firewall-cmd --zone=esxlocalhost --permanent --add-port=3306/tcp
firewall-cmd --reload

Как только это будет сделано, я смог подключиться к клиенту: mysql -usomeuser -h192.168.194.4 -p somedb Введите пароль:

И жизнь была хорошей

0 голосов
/ 29 февраля 2012

Похоже, что адрес website.com не может быть разрешен с компьютера B. Пожалуйста, попробуйте подключиться к серверу MySQL, используя IP-адрес компьютера A, то есть:

mysql -u monty -h x.x.x.x -p

Если это будетубедитесь, что вы правильно сопоставили IP-адрес устройства A с именем website.com.

...