Невозможно подключиться к базе данных MySQL с помощью внешнего IP-адреса
У меня на сервере Windows 7 работает сервер MySQL в качестве службы Windows. Когда я пытаюсь подключиться к нему, используя external.ip = мой IP-адрес с http://www.whatismyip.com/ в командной строке:
mysql -h external.ip -u root -p
это возвращает:
ERROR 2003 (HY000): Can't connect to MySQL server on external.ip (10060)
Однако я могу подключить его к нему, когда меняю external.ip на ip-адрес, указанный в команде ipconfig:
mysql -h ipconfig.ip -u root -p
Я уже изменил права доступа root для принятия любого хоста (используя команды, аналогичные тем, которые используются для доступа к базе данных mysql с внешнего хоста /ip? (Т.е. mysql workbench)). В базе данных:
SELECT host, user FROM user;
возвращает (для подведения итогов):
| host | user |
-----------------
| % | root |
Кроме того, в моем файле my.ini нет строки с надписью "пропустить сеть".
Это работало нормально, когда я попробовал это на днях в другой сети, где external.ip был таким же, как ipconfig.ip. Может ли это быть источником проблемы или есть что-то еще?
1 ответ
Если http://www.whatismyip.com/ и адрес, который вы получаете от ipconfig, отличаются, это означает, что вы используете локальный маршрутизатор (вероятно, тот, который вы используете для подключения к Интернету), который переводит сетевой адрес. Другими словами, у вас есть локальная сеть (в вашем доме или в вашем любимом интернет-кафе) с адресами частной сети, такими как 192.168.0.1 или 10.0.0.1.
MySQL обычно использует прослушивания на порту 3306 для запросов на входящее соединение. Но, когда вы пытаетесь подключиться через ваш общедоступный IP-адрес ("Что такое мой IP-адрес"), ваш сетевой провайдер отправляет запрос на ваш маршрутизатор. Маршрутизатор замечает порт 3306, но, вероятно, не знает, что с ним делать. Так что он молча игнорирует запрос. Программное обеспечение, которое вы используете для установления соединения, истекает. Это хорошо. Взломщики пытаются подключиться к таким портам, чтобы посмотреть, смогут ли они проникнуть на вашу машину.
Итак, чтобы это работало, вам нужно настроить маршрутизатор так, чтобы он передавал входящие TCP-запросы на порт 3306 на компьютер, на котором работает ваш сервер MySQL. Вероятно, для этого есть экран конфигурации. Он будет работать на вашем роутере. Это не будет работать на маршрутизаторе кафе.
Если вы не уверены, что означает "порт", или почему вы получаете другой IP-адрес от ipconfig и от http://www.whatismyip.com/, с уважением, вероятно, вам нужно узнать немного больше о интернет-технологиях, прежде чем Вы должны попытаться такого рода вещи.