Доступ к MySQL извне

Собственно понадобилось реализовать схему — сайт в одной стране, база в другой. Но по дефолту в MySQL выключена возможность коннекта со сторонних IP.
Для начала выполняем

mysql -u user -p

Зайдя в мускул выбираем нужную баз

use mysql

Смотрим сколько пользователей и какие

SELECT Host,User,Password FROM user;

+————+———+——————————————-+
| Host | User | Password |
+————+———+——————————————-+
| localhost | root | *425678901585ACDB80C72475B1E70451ADB1263 |
+————+———+——————————————-+

Видим только одного пользователя — root, доступ которому разрешен с localhost’a.

UPDATE user SET Host='8.8.8.8' WHERE User='root' AND Host='localhost';

Тем самым разрешаем подключение к базе пользователю root с ip 8.8.8.8. Что бы разрешить подключени со всех IP ставим знак %.

Применяем изменения:

FLUSH PRIVILEGES;

Ошибки Access denied for user ‘user’@’ прекратились и я увидел новую:

Lost connection to MySQL server at 'reading initial communication packet', system error: 111

Лечить просто. В /etc/mysql/my.cnf

bind-address = 127.0.0.1

указываем свой реальный внешний IP адрес.

Добавить комментарий