Доступ к MySQL извне
Published on 03.10.2013
Собственно понадобилось реализовать схему — сайт в одной стране, база в другой. Но по дефолту в 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 адрес.
Posted in: