Настройка удаленного подключения к mysql | drupal-admin.ru



При масштабировании Drupal (и не только 🙂 ) сайтов, при настройках репликации mysql требуется настроить в mysql возможность подключения с удаленного сервера. В этой статье речь пойдет о настройке безопасного удаленного подключения к серверу mysql на примере  Linux debian.

Первым делом нужно проверить, какие интерфейсы слушает наш mysql. Это можно сделать командой:

netstat -nap | grep mysql

При правильной настройке (в плане безопасности) mysql должен быть такой вывод:

tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      31574/mysqld 

Это означает, что mysql слушает только локальные соединения и игнорирует внешние подключения.

Разрешим внешние подключения. Для этого отредактируем /etc/mysql/my.cnf, закомментировав две строки:

#skip-networking
#bind-address           = 127.0.0.1

Проверим снова, какие интерфейсы слушает mysql:

root@test:# netstat -nap | grep mysql
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      31911/mysqld

Сейчас он должен слушать все интерфейсы.

Добавим пользователя, разрешенному удаленные подключения:

mysql@master> GRANT ALL PRIVILEGES ON db.* TO user@'xxx.xxx.xx.x' IDENTIFIED BY 'password'; 

ALL PRIVILEGES — указываем привилегии для данного пользоателя;

db.* — база данных, к которой пользователь будет иметь доступ;user — имя пользователя;xxx.xxx.xx.x — ip адрес, с которого будет производится подключение;password — пароль пользователя.

Настройка iptables

Оставлять доступ открытым для подключения с любого ip небезопасно, поэтому настроим iptables для доступа только с конретного адреса. В iptables очередность правил играет роль, поэтому вначале разрешим запросы с определенного ip-адреса, а потом запретим для всех:

/sbin/iptables -A INPUT -i eth0 -s ХХХ.ХХХ.ХХ.Х -p tcp --destination-port 3306 -j ACCEPT, где ХХХ.ХХХ.ХХ.Х - ip-адрес, с которого мы планируем подключаться к mysql.
/sbin/iptables -A INPUT -p tcp --dport 3306 -j DROP

После этих манипуляций к нашему серверу можно удаленного подключить с указанного IP адреса и под добавленным пользователем mysql.


http://drupal-admin.ru/blog/mysql-remote-access

Губарь Маргарита Александровна