MySQL — популярная система управления базами данных, доступная уже много лет. Благодаря своей гибкости и простоте управления он используется во многих небольших разработках и крупных проектах.
В большинстве случаев сервер MySQL и основное приложение размещаются на одном компьютере. Таким образом, MySQL прослушивает соединения только с локальной машины. Однако с появлением распределенных систем, в которых приложение и база данных размещаются на отдельных серверах, прослушивание на локальном хосте не совсем идеально.
Если такие случаи происходят, разработчикам необходимо убедиться, что MySQL прослушивает удаленные подключения или просто подключения за пределами локальной машины. Сделать это можно двумя способами:
- Измените адрес привязки в файле конфигурации MySQL или
- Получите доступ к серверу MySQL через туннель SSH.
В этом руководстве мы рассмотрим, как отредактировать файл конфигурации MySQL, чтобы изменить адрес привязки сервера MySQL.
Предварительные условия
Прежде чем мы начнем, убедитесь, что у вас есть:
- Установлен сервер MySQL или MariaDB.
- Пользователь root или учетная запись с привилегиями sudo.
Как только вы выполните указанные выше требования, мы сможем продолжить.
Шаг 1 — Отредактируйте конфигурацию MySQL
Первым шагом к изменению адреса привязки сервера MySQL является редактирование файла конфигурации.
По умолчанию файл конфигурации MySQL находится в /etc/mysql/mysql.conf.d/mysqld.conf для Ubuntu 20.10.
Расположение файла конфигурации может меняться в зависимости от установленного сервера MySQL и дистрибутива Linux.
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
Пока файл открыт, найдите запись с содержимым как (адрес привязки) и измените значение на IP-адрес, который сервер должен прослушивать.
По умолчанию установлено значение localhost:
В моем примере я изменю адрес привязки на all, что позволяет серверу MySQL прослушивать все адреса IPv4.
bind-address = 0.0.0.0
ПРИМЕЧАНИЕ. Если вы используете сервер MySQL версии 8.0 и выше, запись адреса привязки может быть недоступна. В этом случае вы можете добавить его в раздел [mysqld].
Если вас устраивают изменения в файле конфигурации, сохраните изменения и закройте редактор.
Шаг 2 — перезапустите MySQL
Чтобы применить изменения к файлам конфигурации, необходимо перезапустить службу сервера MySQL. Вы можете сделать это, используя systemd как:
sudo systemctl restart mysql.service
Шаг 3 — Разрешите брандмауэр
По умолчанию MySQL прослушивает 3306, который иногда может блокироваться вашим брандмауэром. Чтобы разрешить порт сервера MySQL, используйте команду IP-таблиц как:
sudo iptables -A INPUT -p tcp —destination-port 3306 -j ACCEPT
Шаг 4 — Проверить соединение
После завершения всех настроек вы можете проверить соединение с сервером MySQL.
mysql -u root -h [mysql_remote/-ip] -p
Если у вас правильно настроен сервер, вы должны получить запрос пароля для конкретного пользователя.
Заключение
В этом кратком руководстве мы рассмотрели, как изменить адрес привязки MySQL, чтобы сервер MySQL мог прослушивать подключения за пределами локальной машины. Это может быть очень полезно при работе с распределенными системами.