当前位置: 首页 > 工具软件 > mysql-sandbox > 使用案例 >

mysql sandbox_MySQL Sandbox安装使用

养淇
2023-12-01

前言

经常看见新同学对于安装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

total588236

-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, version3.0.44(C)2006-2013Giuseppe Maxia

installing with the following parameters:

upper_directory= /root/sandboxes

sandbox_directory=msb_5_6_12

sandbox_port= 5612check_port=no_check_port=datadir_from=script

install_version= 5.6basedir= /opt/mysql/5.6.12tmpdir=my_file=operating_system_user=root

db_user=msandbox

remote_access= 127.%bind_address= 127.0.0.1ro_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= 1verbose=load_grants= 1no_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 installedin $HOME/sandboxes/msb_5_6_12

[root@localhost mysql]#

最后会有安装路径的提示,默认在家目录下的sandboxes下。我们可以看看

[root@localhost sandboxes]# pwd

/root/sandboxes

[root@localhost sandboxes]# ll

total40

-rwxr-xr-x. 1 root root 54 Jun 4 05:25clear_all

drwxr-xr-x. 4 root root 4096 Jun 4 05:25msb_5_6_12-rw-r--r--. 1 root root 3621 Jun 4 05:25plugin.conf-rwxr-xr-x. 1 root root 56 Jun 4 05:25restart_all-rwxr-xr-x. 1 root root 2139 Jun 4 05:25sandbox_action-rwxr-xr-x. 1 root root 58 Jun 4 05:25send_kill_all-rwxr-xr-x. 1 root root 54 Jun 4 05:25start_all-rwxr-xr-x. 1 root root 55 Jun 4 05:25status_all-rwxr-xr-x. 1 root root 53 Jun 4 05:25stop_all-rwxr-xr-x. 1 root root 52 Jun 4 05:25use_all

[root@localhost sandboxes]#

那么如何启动mysql呢,默认安装以后就启动了。

[root@localhost ~]# pgrep -fl mysql2151 /bin/sh /opt/mysql/5.6.12/bin/mysqld_safe --defaults-file=/root/sandboxes/msb_5_6_12/my.sandbox.cnf2331 /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 -9mysqld

[root@localhost msb_5_6_12]# ./start

sandbox server already started (found pidfile /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 connectionid is 2Server version:5.6.12MySQL 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 clearthe 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 connectionid is 5Server 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 clearthe current input statement.

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

各个mysql实例的端口号就是mysql的版本号哦:)

[root@localhost msb_10_0_10]# netstat -nltp | grepmysqld

tcp0 0 127.0.0.1:5612 0.0.0.0:* LISTEN 2547/mysqld

tcp0 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 node1installing node2installing node3group directory installedin $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

total72

-rwxr-xr-x 1 root root 365 Jul 13 16:18check_slaves-rwxr-xr-x 1 root root 432 Jul 13 16:18clear_all-rw-r--r-- 1 root root 7811 Jul 13 16:18connection.json-rw-r--r-- 1 root root 626 Jul 13 16:18default_connection.json-rwxr-xr-x 1 root root 48 Jul 13 16:18n1-rwxr-xr-x 1 root root 48 Jul 13 16:18n2-rwxr-xr-x 1 root root 48 Jul 13 16:18n3

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:18README-rwxr-xr-x 1 root root 204 Jul 13 16:18restart_all-rwxr-xr-x 1 root root 460 Jul 13 16:18send_kill_all-rwxr-xr-x 1 root root 432 Jul 13 16:18start_all-rwxr-xr-x 1 root root 232 Jul 13 16:18status_all-rwxr-xr-x 1 root root 425 Jul 13 16:18stop_all-rwxr-xr-x 1 root root 315 Jul 13 16:18use_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 connectionid is 5Server 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 clearthe current input statement.

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

现在是不是开始爱上MySQL Sandbox了呢?那你还等什么?心动就上吧!哈哈,就写到这里了。

mysql sandbox经典讲义(因为被墙,故放在网盘给同学们下载)

参考资料

 类似资料: