Подключение к: CentOS v ?? с MySql 4. ?? в Нэшвилле (пример публичного IP = 11.11.11.11)
Стек: Кабельный модем как шлюз> маршрутизатор с пересылкой> CentOs Box
Подключение из: Windows 2003 R2 в Далласе (пример общедоступного ip = 22.22.22.22)
Я пытаюсь получить доступ к своему серверу MySql с удаленного сервера через свой общедоступный IP-адрес. Когда я пытаюсь подключиться, я получаю сообщение об ошибке типа «не удалось открыть соединение с хостом» через несколько секунд. У него нет возможности спросить у меня учетные данные для входа. Вот некоторые из вещей, которые я сделал, чтобы открыть этот сервер для удаленных подключений:
Когда я пытаюсь подключиться по telnet из коробки в Далласе к коробке в Нэшвилле через порт 3306, я получаю следующее:
C:\Documents and Settings\Administrator>telnet 11.11.11.11 3306 Connecting To 11.11.11.11...Could not open connection to the host, on port 3306: Connect failed
Однако я могу пинговать 11.11.11.11 с 22.22.22.22 (извините за плохое форматирование ... я пробовал):
C: \ Documents and Settings \ Administrator> ping 11.11.11.11
Пинг 11.11.11.11 с 32 байтами данных:
Ответ от 11.11.11.11: байты = 32 время = 57 мс TTL = 54 Ответ от 11.11.11.11: байты = 32 время = 61 мс TTL = 54 Ответ от 11.11.11.11: байты = 32 время = 56 мс TTL = 54 Ответ от 11.11.11.11 : байты = 32 время = 57 мс TTL = 54
Статистика Ping за 11.11.11.11: Пакеты: отправлено = 4, принято = 4, потеряно = 0 (потеря 0%), приблизительное время приема-передачи в миллисекундах: минимум = 56 мс, максимум = 61 мс, средний = 57 мс
Таблицы IP за 11.11.11.11 гласили:
[root @ centos ~] # / sbin / iptables -L Цепочка INPUT (политика ACCEPT) цель
источник prot opt
место назначения
RH-Firewall-1-INPUT все - в любом месте в любом месте
tcp - 22.22.22.22 где угодно tcp dpt: mysqlЦепочка FORWARD (policy ACCEPT) цель
источник prot opt
место назначения
RH-Firewall-1-INPUT все - в любом месте в любом местеЦепочка OUTPUT (policy ACCEPT) цель
источник prot opt
место назначенияЦепочка RH-Firewall-1-INPUT (2 ссылки) target prot opt source destination ПРИНЯТЬ все - в любом месте ПРИНЯТЬ icmp - в любом месте
везде icmp любой ПРИНЯТЬ
esp - в любом месте в любом месте ПРИНЯТЬ ах - в любом месте
везде ПРИНЯТЬ udp - где угодно 224.0.0.251 udp dpt: mdns ПРИНЯТЬ udp - где угодно
udp dpt: ipp ACCEPT tcp - в любом месте в любом месте
tcp dpt: ipp ПРИНЯТЬ все - где угодно и где угодно
состояние СВЯЗАННО, СОЗДАНО ПРИНЯТЬ
tcp - в любом месте в любом месте состояние NEW tcp dpt: mysql ACCEPT
tcp - в любом месте в любом месте состояние NEW tcp dpt: ssh REJECT all - в любом месте отклонить-с icmp-host -hibited
@Sunny: Прямо сейчас локальный IP-адрес указан в /etc/my.conf. Чтобы увидеть, что произошло, я заменил локальный IP-адрес на 11.11.11.11. Когда я это сделал, MySql не смог запустить резервную копию. Я предполагаю, что адрес привязки должен быть IP-адресом в коробке.
Я МОГУ подключиться к MySql с другого компьютера в той же сети, используя локальный IP-адрес. Однако даже с локальным я не могу подключиться с помощью 11.11.11.11.
Любые идеи? Я не разбираюсь в Linux, но немного слеп.
Проверьте my.conf и какие привязки есть у MySql server.
Может быть так, что он слушает только в локальной сети.
Ты ищешь адрес привязки настройка в /etc/my.conf или /etc/mysql/my.conf.
Если этот параметр включен (обычно для привязки только к localhost 127.0.0.1), закомментируйте его, и это позволит MySql прослушивать все доступные интерфейсы.
В любом случае доступ к серверу базы данных напрямую через Интернет - не лучшая идея.
Я настоятельно рекомендую вам использовать ssh-туннелирование для доступа к машине через Интернет.
В окнах вы можете использовать замазка в ssh (создание туннеля) в машину MySql. Вы можете перенаправить локальный порт 3306 на удаленный, а затем получить доступ к серверу MySql, используя localhost: 3306.