【工具】MySQL 安装利器---Sandbox

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 一 sandbox是什么?MySQL Sandbox是一个非常简单快捷的安装搭建MySQL实例的工具,它可以非常快速地满足我们对MySQL环境各种需求:单机实例,主从,一主多从等等架构(区别于自己安装MySQL 软件)。
一 sandbox是什么?
MySQL Sandbox是一个非常简单快捷的安装搭建MySQL实例的工具,它可以非常快速地满足我们对MySQL环境各种需求:单机实例,主从,一主多从等等架构(区别于自己安装MySQL 软件)。比如 新的数据库版本发行之后,想要尽快尝鲜 ,又不想花太多资源去安装,就可以使用sandbox帮助我们完成创建单个或者主从结构的实例。对于那些不懂MySQL安装的开发,测试同学而言,可以使用sandbox的快速搭建一个符合要求的数据库。MySQL Sandbox 快速,是以秒来衡量的,谁用谁知道。
二 如何安装和使用
2.1 安装sandbox
本文的案例是基于Centos虚拟机测试。 
  1. yum install cpan -y
  2. yum install perl-Test-Simple -y
  3. cpan MySQL::Sandbox
  4. echo 'export SANDBOX_AS_ROOT=1' >> /root/.bash_profile && source /root/.bash_profile
获取Percona server 5.7.17 版本
  1. wget "https://www.percona.com/downloads/Percona-Server-5.7/Percona-Server-5.7.17-11/binary/tarball/Percona-Server-5.7.17-11-Linux.x86_64.ssl101.tar.gz"
2.2 常用命令
安装完成之后默认会在 /usr/local/bin/ 目录下产生make_开头的文件。
  1. make_sandbox                 基于二进制压缩包创建MySQL实例
  2. make_sandbox_from_source     基于源码创建MySQL实例,参数是而执行 ./configure && make 成功的源码存放目录
  3. make_sandbox_from_installed  基于已经安装好的mysql可执行文件目录安装MySQL实例
  4. make_sandbox_from_url        从网上下载docker 镜像进行安装,具体参考 --help 命令
  5. make_multiple_sandbox        创建多个相同版本的MySQL实例
  6. make_multiple_custom_sandbox 创建不同版本的MySQL实例
  7. make_replication_sandbox     搭建主从复制结构,可以是一主一从,也可以是一主多从。
  8. sbtool :                     sandbox管理工具
要深入了解各个命令的具体用法,请参考源码目录下的README文档,然后再自己动手实践,能理解更深刻,毕竟纸上来得终觉浅,绝知此事要躬行。下面主要通过
make_sandbox 和 make_replication_sandbox 来介绍如何使用 。
2.3 使用sandbox
安装单个实例
  1. root@rac4:/data/mysql# >make_sandbox /data/mysql/Percona-Server-5.7.17-11-Linux.x86_64.ssl101.tar.gz
  2. unpacking /data/mysql/Percona-Server-5.7.17-11-Linux.x86_64.ssl101.tar.gz
  3. Executing low_level_make_sandbox --basedir=/data/mysql/5.7.17 \
  4. --sandbox_directory=msb_5_7_17 \
  5. --install_version=5.7 \
  6. --sandbox_port=5717 \
  7. --no_ver_after_name \
  8. --my_clause=log-error=msandbox.err
  9.     The MySQL Sandbox, version 3.2.05
  10.     (C) 2006-2016 Giuseppe Maxia
  11. Installing with the following parameters:
  12. upper_directory = /root/sandboxes
  13. sandbox_directory = msb_5_7_17
  14. sandbox_port = 5717
  15. check_port =
  16. no_check_port =
  17. datadir_from = script
  18. install_version = 5.7
  19. basedir = /data/mysql/5.7.17
  20. tmpdir =
  21. my_file =
  22. operating_system_user = root
  23. db_user = msandbox
  24. remote_access = 127.%
  25. bind_address = 127.0.0.1
  26. ro_user = msandbox_ro
  27. rw_user = msandbox_rw
  28. repl_user = rsandbox
  29. db_password = msandbox
  30. repl_password = rsandbox
  31. my_clause = log-error=msandbox.err
  32. ...... 省略部分内容
  33. prompt_prefix = mysql
  34. prompt_body = [\h] {\u} (\d) >
  35. force =
  36. no_ver_after_name = 1
  37. verbose =
  38. load_grants = 1
  39. no_load_grants =
  40. no_run =
  41. no_show =
  42. keep_uuid =
  43. history_dir =
  44. do you agree? ([Y],n) Y
输入Y 然后sandbox就会启动一个实例,需要等待20s 左右。
  1. # Starting server
  2. . sandbox server started
  3. # Loading grants
  4. Your sandbox server was installed in $HOME/sandboxes/msb_5_7_17
因为本案例采用root用户安装测试,新生成的数据库目录在 /root/sandboxes/msb_5_7_17,其中的文件如下 

大家可以研究各个可执行文件的具体内容。常用的有use,stop,start,restart 等等,例如
  1. root@rac4:~/sandboxes/msb_5_7_17# >./use --登陆数据库
  2. Welcome to the MySQL monitor. Commands end with ; or \g.
  3. Your MySQL connection id is 9
  4. Server version: 5.7.17-11 Percona Server (GPL), Release 11, Revision f60191c
  5. Copyright (c) 2009-2016 Percona LLC and/or its affiliates
  6. mysql [localhost] {msandbox} ((none)) > show databases;
  7. +--------------------+
  8. | Database           |
  9. +--------------------+
  10. | information_schema |
  11. | mysql              |
  12. | performance_schema |
  13. | sys                |
  14. | test               |
  15. +--------------------+
  16. 5 rows in set (0.00 sec)
搭建主从,本例中启用gtid 并且设置创建1个slave. 因为上例已经创建了一个5.7.17 源程序目录,我们可以基于该目录创建主从,当然也可以基于源码的压缩包。
  1. root@rac4:/data/mysql# >make_replication_sandbox --gtid --how_many_slaves=1 5.7.17
  2. installing and starting master
  3. installing slave 1
  4. starting slave 1
  5. .. sandbox server started
  6. initializing slave 1
  7. replication directory installed in $HOME/sandboxes/rsandbox_5_7_17
根据结果提示sandbox创建的主从在目录$HOME/sandboxes/rsandbox_5_7_17,进入该目录查看有如下文件 

其中master 和node1 分别是主库和备库的数据库目录, m和n1 都是登陆主库的命令,s1 和n2 都是登陆slave 的命令,其他的可以从文件名知道具体用途。这里介绍两个命令 test_replication和 check_slaves 两个命令功能类似,都是检查slave 的状态信息。check_slaves会把主库相关信息输出。
  1. root@rac4:~/sandboxes/rsandbox_5_7_17# >sh test_replication 检查主备关系
  2. # Master log: mysql-bin.000001 - Position: 10732 - Rows: 20
  3. # Testing slave #1
  4. ok - Slave #1 acknowledged reception of transactions from master
  5. ok - Slave #1 IO thread is running
  6. ok - Slave #1 SQL thread is running
  7. ok - Table t1 found on slave #1
  8. ok - Table t1 has 20 rows on #1
  9. # TESTS : 5
  10. # FAILED: 0 ( 0.0%)
  11. # PASSED: 5 (100.0%)
  12. # exit code: 0
  13. root@rac4:~/sandboxes/rsandbox_5_7_17# >./check_slaves  #
  14. master
  15. port: 20192
  16.              File: mysql-bin.000001
  17.          Position: 10732
  18. Executed_Gtid_Set: 00020192-1111-1111-1111-111111111111:1-40
  19. slave # 1
  20. port: 20193
  21.               Master_Log_File: mysql-bin.000001
  22.           Read_Master_Log_Pos: 10732
  23.              Slave_IO_Running: Yes
  24.             Slave_SQL_Running: Yes
  25.           Exec_Master_Log_Pos: 10732
  26.            Retrieved_Gtid_Set: 00020192-1111-1111-1111-111111111111:1-40
  27.             Executed_Gtid_Set: 00020192-1111-1111-1111-111111111111:1-40
三 小结
     按照之前要部署虚拟机安装MySQL的时间和精力来看,使用sandbox的感觉就是一个字- ,只需简单的命令即可完成而且对使用者几乎是透明的当你需要快速搭建最小化测试环境时,完全可以使用sandbox助你一臂之力。当然本文仅仅只是本人在比较短时间内测试的总结,需要更加深入了解sandbox使用的,可以多看看源码和各个命令。推荐  官方文档 
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
安全 关系型数据库 MySQL
mysql8安装
本文介绍了在 CentOS 7 上安装 MySQL 5.7 的详细步骤,包括下载、环境准备、系统配置、安装过程及启动方法。首先通过wget下载MySQL压缩包并解压至指定目录,接着进行主机名修改、依赖安装、用户与用户组创建、ulimit配置等环境准备工作。随后,对操作系统环境进行调整,如文件句柄和进程数的设置、内核参数优化、SELinux和防火墙的关闭等。最后,完成MySQL的安装配置,创建数据和日志目录,初始化MySQL,并设置启动脚本和环境变量,确保MySQL能够正常运行。
82 4
|
5天前
|
关系型数据库 MySQL 数据库
【MySQL基础篇】MySQL概述、Windows下载MySQL8.0超详细图文安装教程
在这一章节,主要介绍两个部分,数据库相关概念及MySQL数据库的介绍、下载、安装、启动及连接。接着,详细描述了MySQL 8.0的版本选择与下载,推荐使用社区版(免费)。安装过程包括自定义安装路径、配置环境变量、启动和停止服务、以及客户端连接测试。此外,还提供了在同一台电脑上安装多个MySQL版本的方法及卸载步骤。最后,解释了关系型数据库(RDBMS)的特点,即基于二维表存储数据,使用SQL语言进行操作,格式统一且便于维护。通过具体的结构图展示了MySQL的数据模型,说明了数据库服务器、数据库、表和记录之间的层次关系。
【MySQL基础篇】MySQL概述、Windows下载MySQL8.0超详细图文安装教程
|
11天前
|
关系型数据库 MySQL 数据库
docker高级篇(大厂进阶):安装mysql主从复制
docker高级篇(大厂进阶):安装mysql主从复制
75 24
|
1天前
|
安全 关系型数据库 MySQL
Windows Server 安装 MySQL 8.0 详细指南
安装 MySQL 需要谨慎,特别注意安全配置和权限管理。根据实际业务需求调整配置,确保数据库的性能和安全。
26 9
|
5天前
|
NoSQL 关系型数据库 MySQL
Linux安装jdk、mysql、redis
Linux安装jdk、mysql、redis
76 7
|
12天前
|
SQL 关系型数据库 MySQL
MySQL 窗口函数详解:分析性查询的强大工具
MySQL 窗口函数从 8.0 版本开始支持,提供了一种灵活的方式处理 SQL 查询中的数据。无需分组即可对行集进行分析,常用于计算排名、累计和、移动平均值等。基本语法包括 `function_name([arguments]) OVER ([PARTITION BY columns] [ORDER BY columns] [frame_clause])`,常见函数有 `ROW_NUMBER()`, `RANK()`, `DENSE_RANK()`, `SUM()`, `AVG()` 等。窗口框架定义了计算聚合值时应包含的行。适用于复杂数据操作和分析报告。
54 11
|
2月前
|
安全 关系型数据库 MySQL
Linux下安装mysql8.0(以tar.xz包安装--编译安装)
通过上述步骤,您完成了从下载、编译、安装到配置MySQL 8.0的全过程。此过程虽然较为复杂,但提供了对MySQL安装环境的完全控制,有助于满足特定的部署需求。在实际操作中,根据具体的系统环境,可能还需调整部分步骤或解决未预见的依赖问题。始终参考官方文档和社区资源,保持安装过程与最新版本的兼容性。
1158 67
|
1月前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
67 4
|
2月前
|
关系型数据库 MySQL Linux
Docker安装Mysql5.7,解决无法访问DockerHub问题
当 Docker Hub 无法访问时,可以通过配置国内镜像加速来解决应用安装失败和镜像拉取超时的问题。本文介绍了如何在 CentOS 上一键配置国内镜像加速,并成功拉取 MySQL 5.7 镜像。
648 2
Docker安装Mysql5.7,解决无法访问DockerHub问题
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。通过具体案例,读者可以了解如何准备环境、下载源码、编译安装、配置服务及登录 MySQL。编译源码安装虽然复杂,但提供了更高的定制性和灵活性,适用于需要高度定制的场景。
120 3