Настройка удаленного подключения к MySQL (MariaDB) базе
В Linux демон MySQL после установки настроен сразу только на локальное подключение. MySQL разрешает подключения только на интерфейсе 127.0.0.1. Чаще всего MySQL устанавливается рядом с web-сервером и подключение к нему происходит локально.
В редких случаях необходимо разрешить подключение для локальной сети или еще реже из любого места.
Чтобы настроить удаленное подключение к MySQL необходимо выполнить 3 шага:
- разрешить MySQL слушать не только 127.0.0.1;
- добавить пользователю право подключаться не с localhost.
- настроить файрвол
Первым делом проверим, как опубликован демон
netstat -an
Отлично, половина дела сделано. А если нет?, то
Настраиваем MySQL
Открываем основной конфигурационный файл MySQL:
sudo vim /etc/mysql/my.cnf
Находим строчку и комментируем:
...
# bind-address = 127.0.0.1
Это укажет демону принимать входящие соединения с любых интерфейсов.
Если нужно разрешить подключение только с ЛВС, то указываем IP-адрес сервера. К примеру bind-address = 192.168.0.25
, где 192.168.0.25 — адрес нашего сервера с БД.
Далее перезапускаем демон БД:
sudo service mysqld restart
Обновляем права пользователя
Подключаемся к БД, и даем права пользователю
mysql -u root -p
GRANT ALL PRIVILEGES ON *.* TO 'root'@'10.10.11.21' IDENTIFIED BY 'P@ssw0rd';
Доступ отовсюду, но так делать не стоит!!!
RENAME USER 'root'@'localhost' TO 'root'@'%';
FLUSH PRIVILEGES;
Первая команда добавит пользователю root возможность подключаться c любого адреса. Вторая команда применит новые права.
Если Вы хотите ограничить подключение к MySQL только локальной сетью, последние команды должны быть такими:
RENAME USER 'root'@'localhost' TO 'root'@'192.168.0.*';
FLUSH PRIVILEGES;
Настраиваем файрвол
Обязательно настраиваем firewall
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload
Только полноправные пользователи могут оставлять комментарии. Аутентифицируйтесь пожалуйста, используя сервисы.