MySQL Sandbox安装使用
下面教大家如何利用MySQL Sandbox迅速搭建多个mysql实例。MySQL Sandbox是什么呢?简单来说就是一个沙盒,可以用于快速搭建mysql的环境,让我们可以不用费劲的去安装,或者编译,通常对于学习来说是不错的选择,这案例是方便自己学习和练习使用,而非线上环境。项目主页:http://mysqlsandbox.net/
下面是我的搭建过程:
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,建议大家要养成去官网下载软件包的习惯,我这里已经下载,如下)
下载链接:http://dev.mysql.com/downloads/mysql/
[root@localhost]# pwd /root [root@localhost]# ll total 588236 -rw-r--r-- 1 root root 305545110 7月 13 2014 mysql-5.6.19-linux-glibc2.5-x86_64.tar.gz [root@localhost]#
6.在沙箱环境中运行我们mysql实例
开始安装的工作:
[root@localhost]# make_sandbox mysql-5.6.19-linux-glibc2.5-x86_64.tar.gz
成功安装后最后会显示:
unpacking /root/mysql-5.6.19-linux-glibc2.5-x86_64.tar.gz Executing low_level_make_sandbox --basedir=/root/5.6.19 \ --sandbox_directory=msb_5_6_19 \ --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_19 sandbox_port = 5619 check_port = no_check_port = datadir_from = script install_version = 5.6 basedir = 5.6.19 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或者回车,如果按了后报如下的错:
/root/5.6.19/bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory 如果有以上的报错,则yum install libaio -y,没有就跳过
按下Y后,出现以下的信息,就证明你安装成功了:
do you agree? ([Y],n) y loading grants .... sandbox server started Your sandbox server was installed in $HOME/sandboxes/msb_5_6_19 [root@localhost]#
最后会有安装路径的提示,默认在家目录下的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_19 -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]#
在安装好后,就已经默认启动了的,可以杀掉进程,自己启动看看,启动停止脚本在/root/sandboxes/msb_5_6_19
[root msb_5_6_19]# ll 总用量 684 -rwxr-xr-x 1 root root 1797 12月 25 04:24 change_paths -rwxr-xr-x 1 root root 1583 12月 25 04:24 change_ports -rwxr-xr-x 1 root root 2283 12月 25 04:24 clear -rw-r--r-- 1 root root 2326 12月 25 04:24 connection.json drwx------ 5 root root 4096 12月 25 04:33 data -rw-r--r-- 1 root root 166 12月 25 04:24 default_connection.json -rw-r--r-- 1 root root 869 12月 25 04:24 grants.mysql -rwxr-xr-x 1 root root 1196 12月 25 04:24 json_in_db -rwxr-xr-x 1 root root 1270 12月 25 04:24 load_grants -rwxr-xr-x 1 root root 1511 12月 25 04:24 msb -rwxr-xr-x 1 root root 1894 12月 25 04:24 my -rw-r--r-- 1 root root 1597 12月 25 04:24 my.sandbox.cnf -rwxr-xr-x 1 root root 913 12月 25 04:24 proxy_start -rw-r--r-- 1 root root 1135 12月 25 04:24 README -rw-r--r-- 1 root root 608666 12月 25 04:25 rescue_mysql_dump.sql -rwxr-xr-x 1 root root 972 12月 25 04:24 restart -rwxr-xr-x 1 root root 1501 12月 25 04:24 send_kill -rwxr-xr-x 1 root root 2463 12月 25 04:24 start -rwxr-xr-x 1 root root 1093 12月 25 04:24 status -rwxr-xr-x 1 root root 1618 12月 25 04:24 stop drwxr-xr-x 2 root root 4096 12月 25 04:33 tmp -rwxr-xr-x 1 root root 1390 12月 25 04:24 use -rw-r--r-- 1 root root 81 12月 25 04:24 USING 复制代码
启动执行./start,关闭执行./stop,登录./use
[root@localhost msb_5_6_19]# pkill -9 mysqld [root@localhost msb_5_6_19]# ./start sandbox server already started (found pid file /root/sandboxes/msb_5_6_19/data/mysql_sandbox5612.pid) sandbox server started [root@localhost msb_5_6_19]# rm -f /root/sandboxes/msb_5_6_19/data/mysql_sandbox5612.pid [root@localhost msb_5_6_19]# ./start . sandbox server started [root@localhost msb_5_6_19]# [root@localhost msb_5_6_19]# ./use Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.6.19 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 Sandbox的环境已经安装好了
下面安装多个实例:
可以执行make_multiple_sandbox --help查看一个其使用情况
默认3个节点,那就意思是三个实例
[root@localhost]# make_multiple_sandbox mysql-5.6.19-linux-glibc2.5-x86_64.tar.gz installing node 1 installing node 2 installing node 3
执行好后会生成一个multi_msb_mysql-5_6_19的文件夹:
[root sandboxes]# pwd /root/sandboxes [root sandboxes]# ll 总用量 44 -rwxr-xr-x 1 root root 54 12月 25 04:45 clear_all drwxr-xr-x 4 root root 4096 12月 25 05:45 msb_5_6_19 drwxr-xr-x 5 root root 4096 12月 25 04:46 multi_msb_mysql-5_6_19 -rw-r--r-- 1 root root 3621 12月 25 04:45 plugin.conf -rwxr-xr-x 1 root root 56 12月 25 04:45 restart_all -rwxr-xr-x 1 root root 2139 12月 25 04:45 sandbox_action -rwxr-xr-x 1 root root 58 12月 25 04:45 send_kill_all -rwxr-xr-x 1 root root 54 12月 25 04:45 start_all -rwxr-xr-x 1 root root 55 12月 25 04:45 status_all -rwxr-xr-x 1 root root 53 12月 25 04:45 stop_all -rwxr-xr-x 1 root root 52 12月 25 04:45 use_all
进到目录multi_msb_mysql-5_6_19里,可以看到有n1,n2,n3,这就是三个实例:
[root multi_msb_mysql-5_6_19]# ll 总用量 72 -rwxr-xr-x 1 root root 377 12月 25 04:46 check_slaves -rwxr-xr-x 1 root root 456 12月 25 04:46 clear_all -rw-r--r-- 1 root root 7772 12月 25 04:46 connection.json -rw-r--r-- 1 root root 626 12月 25 04:46 default_connection.json -rwxr-xr-x 1 root root 54 12月 25 04:46 n1 -rwxr-xr-x 1 root root 54 12月 25 04:46 n2 -rwxr-xr-x 1 root root 54 12月 25 04:46 n3 drwxr-xr-x 4 root root 4096 12月 25 04:47 node1 drwxr-xr-x 4 root root 4096 12月 25 04:47 node2 drwxr-xr-x 4 root root 4096 12月 25 04:47 node3 -rw-r--r-- 1 root root 1088 12月 25 04:46 README -rwxr-xr-x 1 root root 216 12月 25 04:46 restart_all -rwxr-xr-x 1 root root 484 12月 25 04:46 send_kill_all -rwxr-xr-x 1 root root 456 12月 25 04:46 start_all -rwxr-xr-x 1 root root 235 12月 25 04:46 status_all -rwxr-xr-x 1 root root 449 12月 25 04:46 stop_all -rwxr-xr-x 1 root root 321 12月 25 04:46 use_all
登录分别是./n1 ./n2 ./n3 ;重启、关闭、启动应该大家也能看到了,多实例就搭建好了
作者:陆炫志 出处:xuanzhi的博客 http://www.cnblogs.com/xuanzhi201111 您的支持是对博主最大的鼓励,感谢您的认真阅读。本文版权归作者所有,欢迎转载,但请保留该声明。 |