Попытка подключиться к удаленному хосту MySQL (ошибка 2003) - PullRequest
25 голосов
/ 19 апреля 2011

У меня запущен экземпляр MySQL на сервере Debian, и я могу без проблем подключиться к нему локально. Однако я не могу подключиться к нему удаленно. Когда я пытаюсь сделать это из моей командной строки, я получаю следующую ошибку:

ERROR 2003 (HY000): Can't connect to MySQL server on '<server-ip>' (110)

Я добавил пользователя в mysql как 'user' @ '*' и 'user' @ 'localhost'. skip-network на этом сервере имеет значение false, а bind-адрес закомментирован в my.cnf. Я также попытался открыть порт 3306 в iptables, используя следующую команду:

/sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT

Вот список всех моих правил iptable firewall, которые я получил с помощью iptables -L:

Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            
REJECT     tcp  --  anywhere             anywhere            tcp dpt:auth reject-with icmp-port-unreachable 
ACCEPT     icmp --  anywhere             anywhere            icmp type 8 code 0 state NEW,RELATED,ESTABLISHED,UNTRACKED 
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 
ACCEPT     tcp  --  anywhere             anywhere            tcp spts:1024:65535 dpt:ftp state NEW 
ACCEPT     tcp  --  anywhere             anywhere            tcp spts:1024:65535 dpt:ssh state NEW 
ACCEPT     tcp  --  anywhere             anywhere            tcp spts:1024:65535 dpt:www state NEW 
ACCEPT     tcp  --  <my-server>          anywhere            tcp spts:1024:65535 dpt:mysql state NEW 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpts:49152:65534 state NEW 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:mysql 
LOG        all  --  anywhere             anywhere            limit: avg 5/min burst 5 LOG level debug prefix `iptables denied: ' 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:mysql 
LOG        tcp  --  anywhere             anywhere            tcp dpt:mysql LOG level debug 

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Кто-нибудь знает, куда мне идти отсюда?

Ответы [ 5 ]

12 голосов
/ 19 апреля 2011

На основании вашего ответа вам необходимо выяснить, существует ли между вами и сервером устройство, блокирующее ваше соединение. Вы также должны убедиться, что вы можете подключиться к 3306 по сетевому адресу этого сервера при входе в систему на сервере ... если нет, то, вероятно, вы не привязали службу к сети в my.cnf ... см. параметр bind-address.

1 голос
/ 24 февраля 2017

Это может из-за того, что порт 3306 закрыт, проверьте состояние порта вашего сервера

http://www.yougetsignal.com/tools/open-ports/

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

ufw - Несложный брандмауэр

Средством настройки брандмауэра по умолчанию для Ubuntu является ufw.Ниже приведены некоторые примеры использования ufw:

Во-первых, необходимо включить ufw.В командной строке терминала введите:

sudo ufw enable

Чтобы открыть порт (mysql):

sudo ufw allow 3306

Чтобы просмотреть состояние брандмауэра, введите:

sudo ufw status
1 голос
/ 12 июня 2013

Вам следует проверить конфигурацию MySQL Server, чтобы убедиться, что он привязан к 127.0.0.1, тогда вы можете подключиться к mysql, только если ваше приложение находится на том же сервере. Есть простой способ установить вебамин и управлять им через веб-интерфейс.

0 голосов
/ 15 мая 2018

для меня это было включить порт 3306 в файле /etc/default/iptables, чтобы разрешить входящий трафик с любого хоста, раскомментировав следующую строку:

#-A INPUT -p tcp --dport 3306 -j ACCEPT
0 голосов
/ 21 июня 2017

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

1) В Windows Machine перейдите по пути «Панель управления \ Сеть и Интернет \ Сетевые подключения», щелкните правой кнопкой мыши локальную сеть и перейдите в свойства. Нажмите на TCP / IPv4 и перейдите в свойства. Убедитесь, что IP и DNS сервер (если вы используете DHCP или нет?).

2) После этого перезапустите аппарат и проверьте его снова.

Надеюсь, это сработает. В моем случае это работает.

Примечание: пожалуйста, убедитесь, что все ваши настройки верны. Этот ответ смешной, но он работает в моем случае:)

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...