Попытка подключения к удаленному хосту MySQL (ошибка 2003)

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

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

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

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

Вот список всех моих правил брандмауэра iptable, которые я выполнил с помощью 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

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

Ответ 1

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

Ответ 2

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

Ответ 3

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

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

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

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

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

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

sudo ufw enable

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

sudo ufw allow 3306

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

sudo ufw status

Ответ 4

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

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

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

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

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

Спасибо!