在开发过程中,我们经常需要搭建 MySQL 测试环境。传统的方式可能比较繁琐,而 dbdeployer 工具可以帮助我们快速部署各种 MySQL 环境,包括单实例、主从复制、组复制和 NDB 集群等。
🚀 安装 dbdeployer
下载并安装
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| # 下载最新版本
cd ~
wget https://github.com/datacharmer/dbdeployer/releases/download/v1.72.0/dbdeployer-1.72.0-docs.linux.tar.gz
# 解压文件
tar -zxvf dbdeployer-1.72.0-docs.linux.tar.gz
# 赋予执行权限
chmod +x dbdeployer-1.72.0-docs.linux
# 移动到系统可执行目录
sudo mv dbdeployer-1.72.0-docs.linux /usr/local/bin/dbdeployer
# 验证安装
dbdeployer --version
|
初始化环境
1
2
| # 创建必要目录并下载最新的 MySQL 二进制文件
dbdeployer init
|
📦 管理 MySQL 包
查看可用的 MySQL 版本
1
2
| # 列出支持下载的软件包
dbdeployer downloads list
|
下载并解压指定版本
1
2
3
4
5
| # 以 MySQL 8.0.31 为例
dbdeployer downloads get-unpack mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz
# 检查已安装的 MySQL 包
dbdeployer versions
|
💫 部署 MySQL 实例
单实例部署
1
2
| # 部署 MySQL 8.0.31 单实例
dbdeployer deploy single 8.0.31
|
查看部署帮助
1
2
3
4
5
| # 查看部署选项
dbdeployer deploy -h
# 查看单实例部署帮助
dbdeployer usage single
|
⚙️ 配置说明
目录结构
- MySQL 实例存储位置:
~/opt/mysql
- 启动配置目录:
~/sandboxes
实例管理
1
2
3
4
5
| # 启动实例
~/sandboxes/msb_8_0_31/start
# 停止实例
~/sandboxes/msb_8_0_31/stop
|
默认账户信息
用户名 |
密码 |
权限 |
root@localhost |
msandbox |
ALL PRIVILEGES with GRANT OPTION |
msandbox@localhost |
msandbox |
ALL PRIVILEGES |
rsandbox@127.% |
rsandbox |
REPLICATION SLAVE |
本地登录
1
| ~/opt/mysql/8.0.31/bin/mysql -uroot -pmsandbox -S /tmp/mysql_sandbox8031.sock
|
🌍 配置远程访问
- 修改配置文件
```bash
编辑 MySQL 配置
vi ~/sandboxes/msb_8_0_31/my.sandbox.cnf
修改绑定地址
bind-address = 0.0.0.0
1
2
3
4
5
6
7
8
9
|
2. 授权远程访问
```sql
-- 登录 MySQL 后执行
USE mysql;
UPDATE user SET host='%' WHERE user='root';
FLUSH PRIVILEGES;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
|
📝 小贴士
FLUSH PRIVILEGES
命令用于重新加载权限表,使修改立即生效
- 修改权限后使用
FLUSH PRIVILEGES
可以避免重启服务器
- 生产环境建议限制特定 IP 访问,而不是使用
'%'
- 定期备份数据库配置和数据很重要
通过 dbdeployer,我们可以在几分钟内搭建好各种 MySQL 测试环境,大大提高了开发和测试效率。这个工具特别适合需要频繁部署不同版本 MySQL 实例的开发测试场景。