Показать статистику
+1 голос
от (4.6тыс. баллов)
Существует ли какой то секретный способ заставить MySQL работать сразу на нескольких адресах? Я вижу в /etc/my.cnf директиву bind-address, но там нельзя несколько адресов указать. Есть идеи?
2.4тыс. просмотров 1 ответов

1 Ответ

+1 голос
от (2.4тыс. баллов)

Краткий ответ - "никак". Дело в том, что bind-address работает только для одного айпишника. Можно вообще убрать сетевой сокет (и тогда MySQL будет работать через юникс-сокет) либо можно сказать MySQL слушать на всех адресах

bind-address    = 0.0.0.0
от (17.4тыс. баллов)
0

В таком случае имеет смысл дополнительно защитить порт 3306 (на котором слушает MySQL) от несанционеированного доступа извне. Укажите только те адреса, которые будут обращаться к вашему MySQL.

Вот пример правил iptables:

iptables -A INPUT -s 127.0.0.1/32 -d 127.0.0.1/32 -p tcp -m tcp --dport 3306 -j ACCEPT
iptables -A INPUT -s 192.168.0.6/32 -d 192.168.0.1/32 -p tcp -m tcp --dport 3306 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 3306 -j DROP

В этом примере первые два правила разрешают доступ к порту 3306 с локального хоста, адрес 127.0.0.1 на локальный хост. А так же (второе правило) указывает что адрес 192.168.0.6 может обращаться к порту 3306 по адресу 192.168.0.1. Обращения со всех других адресов на порт 3306 блокируются через DROP.

Как сохранить правила что бы они применились после перезагрузки системы читайте тут.

...