Настройка удаленного подключения к mysql

Настройка удаленного подключения к mysql

При масштабировании 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:
# /etc/init.d/mysql restart

Проверим снова, какие интерфейсы слушает 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

Теги

Добавить комментарий

Ограниченный HTML

  • Допустимые HTML-теги: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Строки и абзацы переносятся автоматически.
  • Адреса веб-страниц и email-адреса преобразовываются в ссылки автоматически.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.