Возможность Ping удаленного сервера, но не удается подключиться - PullRequest
2 голосов
/ 29 февраля 2012

Я могу пропинговать удаленный сервер, к которому пытаюсь подключиться. Однако при запуске команды MySQL:

mysql -u monty -h website.com -p

Я получаю следующую ошибку:

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

Я следовал найденным инструкциям здесь , которые показывают, как создать пользователя с необходимыми привилегиями:

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

Я также прокомментировал следующую строку в /etc/mysql/my.cnf

# bind-address      = 127.0.0.1

Несмотря на это, я все еще не могу подключиться удаленно. Есть что-то, чего я здесь не хватает? Еще раз спасибо всем.

Ответы [ 2 ]

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

Это не проблема разрешения.Если бы это была проблема с правами доступа, вы бы получили другую ошибку.

Это проблема с соединением.

Убедитесь, что строка skip-networking закомментирована или удалена из вашего файла конфигурации.

Убедитесь, что линия port настроена на правильный порт (по умолчанию 3306).

Если вы все еще не можете подключиться, то это, скорее всего, проблема с брандмауэром / провайдером.

Проверка связи не очень хороший тест, потому что она только проверяет, работает ли сервер ICMP.Использование telnet для подключения к определенному порту было бы лучшим тестом:

> telnet website.com 3306

Есть много мест, куда вы можете поместить файл my.cnf, поэтому найдите файл, чтобы убедиться, что другой файл не находится вэффект.

Это в сочетании с ответом Сарнольда должно привести вас на правильный путь.

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

Ошибка 111 - это Connection refused:

$ perror 111
111: Connection refused

Существует несколько распространенных способов:

  • Серверная система, клиентская система или маршрутизатор всередина настроена для административного REJECT этих пакетов.Пакеты TCP обрабатываются иначе, чем пакеты ICMP, поэтому возможность ping не обязательно подразумевает возможность маршрутизации любого случайного потока TCP.Попросите администраторов систем проверить ufw или iptables на наличие данных брандмауэра.
  • На серверной системе запущено средство обязательного контроля доступа , такое как AppArmor , SELinux , TOMOYO или SMACK , настроенный для запрета пакетов.Эти системы различаются по способу сообщения об ошибках, но проверьте /var/log/audit/audit.log и dmesg(1) выходные данные для reject, denied, AVC и т. Д.
  • Возможно, вы удалили только одну bind-address конфигурацию,Попробуйте добавить явный bind-address=0.0.0.0 (ссылка на кеш Google; по какой-то причине я не могу связаться с dev.mysql.com) для принудительной привязки ко всем адресам.Проверьте netstat -anp | grep -i mysql, чтобы увидеть, какие порты, если таковые имеются, он слушает.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...