Настройка удалённого доступа к базе данных в виртуальной машине Битрикс.

02.08.2010
@LEXXX_NF

Я использую BVA как тестовый сервер для разработок, поэтому мне удобно, чтобы к базе данных можно было достучаться извне с помощью моей любимой программы SQLyog HeidiSQL.

Настройка базы

Сначала разрешим доступ в самой СУБД. Для этого ищем файл настроек /etc/mysql/my.cnf, а в нём после строчки bind-address = ... дописываем еще одну:

bind-address = 0.0.0.0

Перезапускаем базу:

/etc/init.d/mysql restart

Создание пользователя

Теперь создадим пользователя, под которым будем ходить в базу. Дело в том, что у каждого пользователя прописано с какого хоста он может подключаться. Нам нужен такой, который может подлючаться с любого. Итак, коннектимся:

mysql –uroot –p

Пароль пустой, поэтому, на соответствующий запрос СУБД, мы просто нажимаем enter. Создаём пользователя root и сразу даём ему нужные — в нашем случае, абсолютно все, — права:

grant all privileges on *.* to root@'%' identified by '' with grant option;

Я задал для нового пользователя пустой пароль.

Настройка файервола iptables

С базой всё. Достучаться до неё нам мешают только настройки файервола. Исправим это:

iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT

По идее, теперь уже можно удалённо коннектиться к базе. Проблема возникнет после перезагрузки: файервол забудет созданное нами правило. Будем лечить дальше.

Создаём файл /etc/network/if-pre-up.d/iptablesload с таким содержанием:

#!/bin/sh
iptables-restore < /etc/iptables.rules
exit 0

И файл /etc/network/if-post-down.d/iptablessave с таким:

#!/bin/sh
if [ -f /etc/iptables.downrules ]; then
   iptables-restore < /etc/iptables.downrules
fi
iptables-save -c > /etc/iptables.rules
exit 0

Разрешаем запускать на исполнение оба файла:

chmod +x /etc/network/if-post-down.d/iptablessave
chmod +x /etc/network/if-pre-up.d/iptablesload

Ну вот вроде бы и всё, можно пользоваться.

И будь осторожен, уважаемый читаталь, мы сделали очень лояльные и небезопасные настройки. Они хорошо подходят только для локального сервера разработок, к которому нет доступа из-вне.

Как быстро перенести базу с одного сервера на другой, можно посмотреть в моём посте Работа с архивами в bash’е.

#1
Алексей
02.07.2011 00:53
Спс помогло.
#2
кусь
02.07.2011 01:15
не понял
#3
Василий
28.04.2012 20:38
кусь если не понял то это не твоё,лучше заюудь, тогда,что тут прочитал
#4
andru
16.08.2013 11:50
Предлагаю взглянуть на хороший и бесплатный инструмент — Valentina Studio 5.x, который вышел буквально пол года назад. Я юзаю уже третий месяц – до сих пор нахожу новые фишки.

Писáть здесь

А еще у меня есть: