Pull to refresh

MySQL песочница

Reading time2 min
Views4.5K
Периодически( а иногда и достаточно часто) возникает необходимость в тестовых, или иных других целях, поднять пару mysql серверов, а можно и с реплицированием, для откатки или отладки того или иного процесса.
Автоматизировать самому данное телодвижение зачастую нет смысла, поскольку это не так часто необходимо, как хочется.

На просторах инета был найден такой готовый скрипт. Называется он myslqsandbox — мускульная песочница. Работает с версиями MySQL от 3.23 до 6.0. Распространяется под лицензией GPL.

Смысл прост.
1. Качаем MySQL-Sandbox-3.0.17.tar.gz и разархивируем его и инсталлируем tar -zxvf MySQL-Sandbox-3.0.17.tar.gz
cd MySQL-Sandbox-3.0.17

Если Вы root, то
export SANDBOX_AS_ROOT=1
perl Makefile.PL
make
make test
make install


Если обычный/необычный смертный пользователь, то

export PATH=$HOME/usr/local/bin:$PATH
export PERL5LIB=$HOME/usr/local/lib/perl5/site_perl/5.8.8
perl Makefile.PL PREFIX=$HOME/usr/local
make
make test
make install


При этом помним, что в зависимости от того, какой дистрибутив Linux вы пользуете, PERL5LIB может отличаться.

Теперь у нас есть 2 варианта.

Вариант №1.
Если у нас уже есть проинсталлированный mysql, то мы можем воспользоваться командой и создать локальную песочницу.

make_sandbox_from_installed X.X.XX

где X.X.XX — версия, проинсталлированного mysql.

Вариант №2.
Качаем MySQL-<чего-нибудь-там-подходящее>.tar.gz и с него делаем песочницу.

cd ~
wget 127.0.0.1/mysql-5.5.15-linux2.6-x86_64.tar.gz
make_sandbox mysql-5.5.15-linux2.6-x86_64.tar.gz


Ваша песочница ~/msb_X_X_XX готова к использованию.
#netstat -lna
unix 2 [ ACC ] STREAM LISTENING 68883 /tmp/mysql_sandbox5515.sock
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN

Все необходимое (конфиги, команды) находится внутри Вашей домашней директории, и чистится простым удалением.
Можно использовать и более интересные комманды «песочницы». Например комманда

make_replication_sandbox ~/mysql-5.5.15-linux2.6-x86_64.tar.gz
создает новый инстанс из одной master и двух slave баз.

make_replication_sandbox --master_master ~/mysql-5.5.15-linux2.6-x86_64.tar.gz
создает мастер-мастер реплику с двумя серверами.

make_replication_sandbox --circular=4 ~/mysql-5.5.15-linux2.6-x86_64.tar.gz
создание «circular» репликации c 3-мя slave серверами (доступно для mysql начиная с версии 5.1)

После выполнения каждой операции готовые инстансы автоматически запускаются и готовы к работе, сокеты/порты слушаются. При создании песочницы автоматически создаются 2 пользователя
 +-----------------+-------------+-------------------------------+
 |  user name      | password    | privileges                    |
 +-----------------+-------------+-------------------------------+
 |  root@localhost | msandbox    | all on *.* with grant option  |
 |  msandbox@%     | msandbox    | all on *.*                    |
 +-----------------+-------------+-------------------------------+


Данная статья — есть попытка поделиться с общественнностью самим фактом наличия подобного изумительного в своем удобстве инструмента.
PS. В дальнейшем, готов продолжить описание данного инструмента, поскольку данное описание — есть только вводная часть.

Продолжение.
Tags:
Hubs:
Total votes 43: ↑39 and ↓4+35
Comments11

Articles