2012-02-28 2 views
1

Я могу выполнить ping удаленный сервер, к которому я пытаюсь подключиться. Тем не менее, при выполнении команды MySQL:Able to Ping Remote Server, еще не удается подключиться

mysql -u monty -h website.com -p 

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

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

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

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 

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

+0

(обратите внимание, что в большинстве случаев вы не хотите этого делать) –

+0

Лохорис, вы имеете в виду команду привилегий flush? –

+0

Вы перезапустили сервер MySQL после комментирования 'bind-address'? Если нет, пожалуйста. –

ответ

2

Ошибка 111 является Connection refused:

$ perror 111 
111: Connection refused 

Там в несколько распространенных способов это происходит:

  • Серверная система, система клиент или маршрутизатор в середине настроен на административном REJECT эти пакеты. TCP-пакеты обрабатываются иначе, чем ICMP-пакеты, поэтому возможность ping не обязательно подразумевает возможность маршрутизации любого случайного потока TCP. Спросите администраторов о системах для проверки ufw или iptables для данных брандмауэра.
  • Система сервера работает mandatory access control инструмента, такие как 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, чтобы узнать, какие порты, если они есть, прослушивают.
+0

Явные настройки 'bind-address' и' netstat' являются прекрасными предложениями. –

2

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

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

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

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

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

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

> telnet website.com 3306 

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

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

Смежные вопросы