Что делать если хост отвергает подключение к mysql из вне?

Если вам нужно подключиться к серверу MySQL из внешнего источника, но хост отвергает соединение, есть несколько вещей, которые стоит проверить и настроить:

1. Проверьте настройки брандмауэра: Убедитесь, что порт MySQL (по умолчанию 3306) открыт в брандмауэре и разрешен для внешнего доступа. Если вы используете сервер Linux, вы можете проверить статус брандмауэра с помощью команды "sudo ufw status". Если порт MySQL не открыт, вы можете добавить правило для разрешения доступа к нему с помощью команды "sudo ufw allow 3306".

2. Проверьте привязку IP-адреса MySQL: Проверьте, какой IP-адрес привязан к MySQL. Если он привязан только к локальному адресу (127.0.0.1), то подключение из внешнего источника будет отклонено. Для разрешения доступа необходимо изменить настройки MySQL, чтобы привязать его к адресу 0.0.0.0 или конкретному внешнему IP-адресу сервера. Откройте файл конфигурации MySQL (обычно называется my.cnf или my.ini, в зависимости от вашей операционной системы) и найдите строку, содержащую параметр bind-address. Измените значение на 0.0.0.0, чтобы привязать MySQL ко всем доступным IP-адресам сервера, или укажите конкретный внешний IP-адрес.

3. Убедитесь, что MySQL прослушивает нужный порт: Проверьте, прослушивает ли MySQL необходимый порт. Вы можете найти эту информацию в файле конфигурации MySQL (my.cnf или my.ini). Параметр называется port и по умолчанию равен 3306. Если вы изменили этот параметр, убедитесь, что вы подключаетесь к правильному порту при попытке соединиться с сервером MySQL.

4. Проверьте доступы пользователя: Убедитесь, что пользователю, с которым вы пытаетесь подключиться к MySQL из внешнего источника, разрешен доступ из нужной сети или IP-адреса. Вы можете проверить, какие привилегии есть у данного пользователя, с помощью команды "SHOW GRANTS FOR 'username'@'hostname'", где username - имя пользователя, а hostname - имя хоста или IP-адрес. Если нужно, вы можете изменить или создать нового пользователя с помощью команды "CREATE USER 'username'@'hostname' IDENTIFIED BY 'password';" и дать необходимые привилегии с помощью команды "GRANT ALL PRIVILEGES ON database.* TO 'username'@'hostname';".

5. Перезапустите сервер MySQL: Если вы внесли изменения в конфигурацию MySQL или настройки привилегий пользователя, перезапустите сервер MySQL, чтобы изменения вступили в силу. Для большинства операционных систем это можно сделать с помощью команды "sudo service mysql restart".

Если после всех этих действий подключение к серверу MySQL из внешнего источника все равно не удается, обязательно проверьте журналы ошибок MySQL (обычно находятся в папке /var/log/mysql/), чтобы найти подробную информацию о возможных ошибках. Если вы не уверены в причине, по которой хост отвергает подключение, рекомендуется обратиться к администратору сервера MySQL или к разработчику, у которого вы получили доступ к хосту MySQL. Они смогут помочь вам с дополнительной отладкой и решением проблемы.