MySQL Sandbox安裝使用


前言

經常看見新同學對於安裝MySQL十分懼怕,這是因為不熟悉的緣故,確實源碼編譯比較麻煩,缺少各種依賴包也夠折騰的。當然還有預編譯包,但是對於新同學來說好像都挺麻煩的。當然有yum安裝,但是我們需要多實例,測試多個版本就不方便了。那么我來說說比較簡單的方法。使用沙箱環境。MySQL Sandbox是什么呢?簡單來說就是一個沙盒,可以用於快速搭建mysql的環境,讓我們可以不用費勁的去安裝,或者編譯。通常對於學習來說是不錯的選擇。畢竟我們是自己學習,而不是線上環境。項目主頁:http://mysqlsandbox.net/。對於安裝也是非常簡單的。我這里就采用 cpan來安裝,當然各位童鞋也可以采用源碼安裝。看你口味了。我反正喜歡簡單,能滿足需求就行,或許這也是我的性格哈。:)

1.安裝cpan

yum install cpan -y

2.安裝軟件依賴的包

yum install perl-Test-Simple -y

3.安裝MySQL Sandbox

cpan MySQL::Sandbox

4.設置環境變量(否則會拋錯)

[root@localhost ~]# echo 'export SANDBOX_AS_ROOT=1' >> /root/.bash_profile
[root@localhost ~]# source /root/.bash_profile 

5.下載mysql二進制軟件包(我這里下載mysql5.6和mariadb-10,軟件各位童鞋自己搜索,我這里已經下載,如下)

[root@localhost mysql]# pwd
/opt/mysql
[root@localhost mysql]# ll
total 588236
-rw-r--r--. 1 root root 295874759 Jun  4 04:56 mariadb-10.0.12-linux-x86_64.tar.gz
-rw-r--r--. 1 root root 306470256 Jun  4 04:56 mysql-5.6.12-linux-glibc2.5-x86_64.tar.gz
[root@localhost mysql]# 

6.在沙箱環境中運行我們mysql兩個實例

(1)首先創建mysql5.6的實例

[root@localhost mysql]# cd /opt/mysql/
[root@localhost mysql]# make_sandbox mysql-5.6.12-linux-glibc2.5-x86_64.tar.gz 
unpacking /opt/mysql/mysql-5.6.12-linux-glibc2.5-x86_64.tar.gz
Executing low_level_make_sandbox --basedir=/opt/mysql/5.6.12 \
        --sandbox_directory=msb_5_6_12 \
        --install_version=5.6 \
        --sandbox_port=5612 \
        --no_ver_after_name \
        --my_clause=log-error=msandbox.err
    The MySQL Sandbox,  version 3.0.44
    (C) 2006-2013 Giuseppe Maxia
installing with the following parameters:
upper_directory                = /root/sandboxes
sandbox_directory              = msb_5_6_12
sandbox_port                   = 5612
check_port                     = 
no_check_port                  = 
datadir_from                   = script
install_version                = 5.6
basedir                        = /opt/mysql/5.6.12
tmpdir                         = 
my_file                        = 
operating_system_user          = root
db_user                        = msandbox
remote_access                  = 127.%
bind_address                   = 127.0.0.1
ro_user                        = msandbox_ro
rw_user                        = msandbox_rw
repl_user                      = rsandbox
db_password                    = msandbox
repl_password                  = rsandbox
my_clause                      = log-error=msandbox.err
master                         = 
slaveof                        = 
high_performance               = 
prompt_prefix                  = mysql
prompt_body                    =  [\h] {\u} (\d) > 
force                          = 
no_ver_after_name              = 1
verbose                        = 
load_grants                    = 1
no_load_grants                 = 
no_run                         = 
no_show                        = 
do you agree? ([Y],n) 

看見各種提示都給出了,相信童鞋們都看的懂,選擇Y同意。

do you agree? ([Y],n) y
loading grants
.... sandbox server started
Your sandbox server was installed in $HOME/sandboxes/msb_5_6_12
[root@localhost mysql]# 

最后會有安裝路徑的提示,默認在家目錄下的sandboxes下。我們可以看看

[root@localhost sandboxes]# pwd
/root/sandboxes
[root@localhost sandboxes]# ll
total 40
-rwxr-xr-x. 1 root root   54 Jun  4 05:25 clear_all
drwxr-xr-x. 4 root root 4096 Jun  4 05:25 msb_5_6_12
-rw-r--r--. 1 root root 3621 Jun  4 05:25 plugin.conf
-rwxr-xr-x. 1 root root   56 Jun  4 05:25 restart_all
-rwxr-xr-x. 1 root root 2139 Jun  4 05:25 sandbox_action
-rwxr-xr-x. 1 root root   58 Jun  4 05:25 send_kill_all
-rwxr-xr-x. 1 root root   54 Jun  4 05:25 start_all
-rwxr-xr-x. 1 root root   55 Jun  4 05:25 status_all
-rwxr-xr-x. 1 root root   53 Jun  4 05:25 stop_all
-rwxr-xr-x. 1 root root   52 Jun  4 05:25 use_all
[root@localhost sandboxes]# 

那么如何啟動mysql呢,默認安裝以后就啟動了。

[root@localhost ~]# pgrep -fl mysql
2151 /bin/sh /opt/mysql/5.6.12/bin/mysqld_safe --defaults-file=/root/sandboxes/msb_5_6_12/my.sandbox.cnf
2331 /opt/mysql/5.6.12/bin/mysqld --defaults-file=/root/sandboxes/msb_5_6_12/my.sandbox.cnf --basedir=/opt/mysql/5.6.12 --datadir=/root/sandboxes/msb_5_6_12/data --plugin-dir=/opt/mysql/5.6.12/lib/plugin --user=root --log-error=/root/sandboxes/msb_5_6_12/data/msandbox.err --pid-file=/root/sandboxes/msb_5_6_12/data/mysql_sandbox5612.pid --socket=/tmp/mysql_sandbox5612.sock --port=5612
[root@localhost ~]# 

可以殺掉進程,自己啟動看看,啟動停止腳本在/root/sandboxes/msb_5_6_12

[root@localhost msb_5_6_12]# pkill -9 mysqld
[root@localhost msb_5_6_12]# ./start 
sandbox server already started (found pid file /root/sandboxes/msb_5_6_12/data/mysql_sandbox5612.pid)
 sandbox server started
[root@localhost msb_5_6_12]# rm -f /root/sandboxes/msb_5_6_12/data/mysql_sandbox5612.pid
[root@localhost msb_5_6_12]# ./start 
. sandbox server started
[root@localhost msb_5_6_12]# 

登陸mysql瞧瞧

[root@localhost msb_5_6_12]# pwd
/root/sandboxes/msb_5_6_12
[root@localhost msb_5_6_12]# ./use 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.12 MySQL Community Server (GPL)

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql [localhost] {msandbox} ((none)) > 

就這么簡單哈,當然有復雜的用法,大家可以試試,通常這樣能快速部署一個mysql用於測試已經足夠了。(下面的是mariadb實例,安裝實例都是一樣的)

[root@localhost msb_10_0_10]# pwd
/root/sandboxes/msb_10_0_10
[root@localhost msb_10_0_10]# ./use 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 5
Server version: 10.0.10-MariaDB MariaDB Server

Copyright (c) 2000, 2014, Oracle, SkySQL Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql [localhost] {msandbox} ((none)) > 

各個mysql實例的端口號就是mysql的版本號哦:)

[root@localhost msb_10_0_10]# netstat -nltp | grep mysqld
tcp        0      0 127.0.0.1:5612              0.0.0.0:*                   LISTEN      2547/mysqld         
tcp        0      0 127.0.0.1:10010             0.0.0.0:*                   LISTEN      3015/mysqld         
[root@localhost msb_10_0_10]# 

對於需要部署多個實例呢?同一個版本部署多實例,其實也非常的簡單,提供了make_multiple_sandbox這個命令,具體的參數自行help。或者查閱官方文檔。

對於部署多個實例,我們還可以添加一個環境變量,就是將實例安裝在指定的位置,

[root@mysql-server-01 mysql]# echo "export SANDBOX_HOME=/data/" >> /root/.bash_profile 
[root@mysql-server-01 mysql]# source /root/.bash_profile 

下面默認部署3個實例(相同的版本)

[root@mysql-server-01 mysql]# make_multiple_sandbox mariadb-10.0.12-linux-x86_64.tar.gz 
installing node 1
installing node 2
installing node 3
group directory installed in $SANDBOX_HOME/multi_msb_mariadb-10_0_12
[root@mysql-server-01 mysql]# 

默認部署3個實例,想要部署更多實例可以加參數--how_many_nodes = number,上面部署完成以后我們看看。

[root@mysql-server-01 multi_msb_mariadb-10_0_12]# pwd
/data/multi_msb_mariadb-10_0_12
[root@mysql-server-01 multi_msb_mariadb-10_0_12]# ll
total 72
-rwxr-xr-x 1 root root  365 Jul 13 16:18 check_slaves
-rwxr-xr-x 1 root root  432 Jul 13 16:18 clear_all
-rw-r--r-- 1 root root 7811 Jul 13 16:18 connection.json
-rw-r--r-- 1 root root  626 Jul 13 16:18 default_connection.json
-rwxr-xr-x 1 root root   48 Jul 13 16:18 n1
-rwxr-xr-x 1 root root   48 Jul 13 16:18 n2
-rwxr-xr-x 1 root root   48 Jul 13 16:18 n3
drwxr-xr-x 4 root root 4096 Jul 13 16:17 node1 drwxr-xr-x 4 root root 4096 Jul 13 16:17 node2 drwxr-xr-x 4 root root 4096 Jul 13 16:18 node3 -rw-r--r-- 1 root root 1088 Jul 13 16:18 README
-rwxr-xr-x 1 root root  204 Jul 13 16:18 restart_all
-rwxr-xr-x 1 root root  460 Jul 13 16:18 send_kill_all
-rwxr-xr-x 1 root root  432 Jul 13 16:18 start_all
-rwxr-xr-x 1 root root  232 Jul 13 16:18 status_all
-rwxr-xr-x 1 root root  425 Jul 13 16:18 stop_all
-rwxr-xr-x 1 root root  315 Jul 13 16:18 use_all
[root@mysql-server-01 multi_msb_mariadb-10_0_12]# 

可以可以已經有3個節點了,我們登陸其中一個看看。

[root@mysql-server-01 multi_msb_mariadb-10_0_12]# ./n1
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 5
Server version: 10.0.12-MariaDB-log MariaDB Server

Copyright (c) 2000, 2014, Oracle, SkySQL Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

node1 [localhost] {msandbox} ((none)) > 

現在是不是開始愛上MySQL Sandbox了呢?那你還等什么?心動就上吧!哈哈,就寫到這里了。

 

mysql sandbox經典講義(因為被牆,故放在網盤給同學們下載)

http://pan.baidu.com/s/1sjLMJCx

參考資料

http://search.cpan.org/~gmax/MySQL-Sandbox-3.0.44/lib/MySQL/Sandbox.pm


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM