Как настроить удалённый доступ к MySQL с удалённых серверов
В этой заметке я делюсь методом: как разрешить внешний доступ к вашему серверу MySQL. Урок достаточно простой, нужно будет сменить конфиг, перезапустить MySQL добавить исключение в фаервол в случае его использования. Поехали!
Настройка MySQL для прослушивания сетевого интерфейса
Прежде всего, нам нужно внести изменения в конфигурацию MySQL, чтобы он прослушивал сетевой интерфейс. Вот что вам нужно сделать:
Найдите файл конфигурации MySQL. Обычно он называется my.cnf
или mysql.cnf
обычно находится в директории /etc/mysql/
в системах типа Ubuntu / Debian.
Найдите директиву bind-address
. Эта строка определяет IP-адрес, на котором MySQL будет прослушивать подключения.
Установите значение bind-address
на IP-адрес вашего внешнего сервера или, если вы хотите разрешить доступ со всех IP-адресов, установите его на 0.0.0.0.
Сохраните изменения и перезагрузите сервер MySQL.
sudo systemctl restart mysql
Помните — открывать сервер для всех IP адресов это очень плохая идея. Этот метод подходит для учебного проекта, но небольшой баг в коде может раскрыть данные в базе и скомпрометировать её содержимое. Если думаете, что ваш проект слишком маленький и вас это не касается, то вы ошибаетесь. Недавно я запустил совершенно чистый сервер с новым ip и оставил публичный доступ к базе, даже надёжный пароль меня не спас, через час какой-то бот стёр всю БД и предлагал выкуп, за возвращение данных.
Изменение настроек фаервола
Этот шаг необходимо выполнить, только если вы настроили фаервол который закрыл все порты на вашем сервере для внешнего мира.
Чтобы гарантировать, что входящие подключения достигнут вашего сервера MySQL, нам нужно настроить фаервол. Выполните нужную комманду в зависимости от используемого вами:
Для пользователей ufw:
sudo ufw allow 3306
Для пользователей iptables:
sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
Для пользователей firewalld:
sudo firewall-cmd --add-port=3306/tcp --permanent
Вот и всё! Вы успешно настроили MySQL для внешнего доступа.
Не забывайте о безопасности, сейчас не так опасна попытка целенаправленного взлома, сколько автоматические сканеры уязвимостей которые 24/7 ищут уязвимости в миллионах сайтов в день.