MySQL Sandbox_MySQL
Hi there, today we will learn about an amazing tool that every single MySQL dba must know, I’m talking about MySQL Sandbox.
MySQL Sandbox is developed by Giuseppe Maxia (The Data Charmer), it’s a tool that make the installation of MySQL servers very easy. If you need to quickly create a MySQL instance for test or a replication setup(it supports master slave, circular and master master replication), this it the tool.
INSTALLATION:
Go to http://mysqlsandbox.net/ and get the latest version (I got from launchpad):
yum install perl perl-ExtUtils-MakeMaker perl-Test-Simplewget https://launchpad.net/mysql-sandbox/mysql-sandbox-3/mysql-sandbox-3/+download/MySQL-Sandbox-3.0.44.tar.gztar -zxvf MySQL-Sandbox-3.0.44.tar.gzcd MySQL-Sandbox-3.0.44perl Makefile.PLmakemake testmake install
CREATING A SINGLE SANDBOX:
To create a single sandbox, all you need is the mysql package that you want install and themake_sandbox
command:
[root@localhost ~]# make_sandbox mysql-5.6.17-linux-glibc2.5-i686.tar.gz unpacking /root/mysql-5.6.17-linux-glibc2.5-i686.tar.gzExecuting low_level_make_sandbox --basedir=/root/5.6.17 / --sandbox_directory=msb_5_6_17 / --install_version=5.6 / --sandbox_port=5617 / --no_ver_after_name / --my_clause=log-error=msandbox.err The MySQL Sandbox,version 3.0.44 (C) 2006-2013 Giuseppe Maxiainstalling with the following parameters:upper_directory = /root/sandboxessandbox_directory = msb_5_6_17sandbox_port = 5617check_port = no_check_port = datadir_from = scriptinstall_version = 5.6basedir = /root/5.6.17tmpdir = my_file = operating_system_user = rootdb_user = msandboxremote_access = 127.%bind_address = 127.0.0.1ro_user = msandbox_rorw_user = msandbox_rwrepl_user = rsandboxdb_password = msandboxrepl_password = rsandboxmy_clause = log-error=msandbox.errmaster = slaveof = high_performance = prompt_prefix = mysqlprompt_body =[/h] {/u} (/d) > force = no_ver_after_name = 1verbose = load_grants = 1no_load_grants = no_run = no_show = do you agree? ([Y],n) loading grants.. sandbox server startedYour sandbox server was installed in $HOME/sandboxes/msb_5_6_17
To use it you can call theuse
script inside the sandbox folder:
[root@localhost ~]# $HOME/sandboxes/msb_5_6_17/useWelcome to the MySQL monitor.Commands end with ; or /g.Your MySQL connection id is 3Server version: 5.6.17 MySQL Community Server (GPL)Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '/h' for help. Type '/c' to clear the current input statement.mysql [localhost] {msandbox} ((none)) >
You can manage your sandbox by calling the start / stop / restart / status script inside the sandbox folder
CREATING A MASTER SLAVE REPLICATION:
To create a master slave replication topology (by default is set to 1 master and 2 slaves but it can be changed passing the--how_many_nodes
parameter) we will use themake_replication_sandbox
command:
[root@localhost ~]# make_replication_sandbox mysql-5.6.17-linux-glibc2.5-i686.tar.gz installing and starting masterinstalling slave 1installing slave 2starting slave 1.... sandbox server startedstarting slave 2.. sandbox server startedinitializing slave 1initializing slave 2replication directory installed in $HOME/sandboxes/rsandbox_mysql-5_6_17
To use it we can call theuse
script, for replication, the use script will be located inside the nodeN/Master folder:
[root@localhost ~]# #MASTER[root@localhost ~]# /root/sandboxes/rsandbox_mysql-5_6_17/master/use Welcome to the MySQL monitor.Commands end with ; or /g.Your MySQL connection id is 7Server version: 5.6.17-log MySQL Community Server (GPL)Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '/h' for help. Type '/c' to clear the current input statement.master [localhost] {msandbox} ((none)) > ^DBye[root@localhost ~]# #SLAVE 1[root@localhost ~]# /root/sandboxes/rsandbox_mysql-5_6_17/node1/use Welcome to the MySQL monitor.Commands end with ; or /g.Your MySQL connection id is 5Server version: 5.6.17-log MySQL Community Server (GPL)Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '/h' for help. Type '/c' to clear the current input statement.slave1 [localhost] {msandbox} ((none)) > ^DBye[root@localhost ~]# #SLAVE 2[root@localhost ~]# /root/sandboxes/rsandbox_mysql-5_6_17/node2/use Welcome to the MySQL monitor.Commands end with ; or /g.Your MySQL connection id is 5Server version: 5.6.17-log MySQL Community Server (GPL)Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '/h' for help. Type '/c' to clear the current input statement.slave2 [localhost] {msandbox} ((none)) >
On replication sandbox, you can manage the individual sandbox by calling the start / stop / restart / status script inside the node / master folder or you can call the scripts ending with _all located on the sandbox folder (start_all
/stop_all
/restart_all
/status_all
).
CREATING A MULTI MASTER REPLICATION:
To create a multi-master sandbox we will use themake_replication_sandbox
with--master_master
option:
[root@localhost ~]# make_replication_sandbox --master_master mysql-5.6.17-linux-glibc2.5-i686.tar.gzinstalling node 1installing node 2# server: 1: # server: 2: # server: 1: # server: 2: Circular replication activatedgroup directory installed in $HOME/sandboxes/rcsandbox_mysql-5_6_17
That is it, you can find more information using the help parameter onmake_multiple_custom_sandbox make_multiple_sandbox make_replication_sandbox make_sandbox make_sandbox_from_installed and make_sandbox_from_source