MySql 9 in Docker 利用克隆插件搭建主从

环境配置概述

以下是搭建MySQL主从复制环境所需的系统和软件版本信息:

  1. Docker
  2. Windows 11操作系统
  3. MySQL数据库版本为9.1.0

搭建MySQL主从复制步骤

1. 主库设置

步骤1:配置主库

首先,需要准备主库的配置文件master.cnf,内容如下:

[mysqld]
server-id=1
log-bin=mysql-bin
binlog-format=ROW
gtid_mode=ON
enforce-gtid-consistency=ON
log_slave_updates=ON
read_only=OFF
plugin-load=clone=mysql_clone.so

步骤2:启动主库容器

使用Docker命令启动主库容器,命令如下:

docker run --name mysql-master --restart=unless-stopped -p 5300:3306 -e MYSQL_ROOT_PASSWORD=123456 -v C:\Users\Administrator\docker\MySql\replication\master\conf\master.cnf:/etc/mysql/conf.d/master.cnf:ro -v C:\Users\Administrator\docker\MySql\replication\master\data:/var/lib/mysql -d mysql

步骤3:登录MySQL

进入容器并登录MySQL数据库,命令如下:

docker exec -it mysql-master bash 
mysql -u root -p

步骤4:创建复制用户

在MySQL中创建复制用户并授权,SQL命令如下:

CREATE USER 'repl'@'%' IDENTIFIED with caching_sha2_password BY '123456';  
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';  
FLUSH PRIVILEGES;

步骤5:退出MySQL

退出MySQL命令行,命令如下:

EXIT;

2. 从库设置

步骤1:配置从库

准备从库的配置文件slave.cnf,内容如下:

[mysqld] 
server-id=2 
log-bin=mysql-bin 
binlog-format=ROW 
gtid_mode=ON 
enforce-gtid-consistency=ON 
read_only=ON
plugin-load=clone=mysql_clone.so

步骤2:启动从库容器

使用Docker命令启动从库容器,命令如下:

docker run --name mysql-slave --restart=unless-stopped -p 5301:3306 -e MYSQL_ROOT_PASSWORD=123456 -v C:\Users\Administrator\docker\MySql\replication\slave\conf\slave.cnf:/etc/mysql/conf.d/slave.cnf:ro -v C:\Users\Administrator\docker\MySql\replication\slave\data:/var/lib/mysql -d mysql

步骤3:登录MySQL

进入容器并登录MySQL数据库,命令如下:

docker exec -it mysql-slave bash 
mysql -u root -p

步骤4:设置克隆来源

允许从库克隆主库数据,SQL命令如下:

SET GLOBAL clone_valid_donor_list = '172.17.0.6:3306';

步骤5:执行克隆

从主库克隆数据到从库,SQL命令如下:

CLONE INSTANCE FROM 'root'@'172.17.0.6':3306 IDENTIFIED BY '123456';

步骤6:从库重启

克隆完成后,从库将自动重启。

步骤7:查看克隆状态

重新进入从库后,可以查看克隆状态,SQL命令如下:

select * from performance_schema.clone_status;

步骤8:开启主从复制

配置从库以开启主从复制,SQL命令如下:

CHANGE REPLICATION SOURCE TO 
    SOURCE_HOST='172.17.0.6', 
    SOURCE_PORT = 3306, 
    SOURCE_USER='repl', 
    SOURCE_PASSWORD='123456', 
    GET_SOURCE_PUBLIC_KEY=1, 
    SOURCE_AUTO_POSITION=1;
start REPLICA;
SHOW REPLICA STATUS\G;

验证主从复制

为了验证主从复制是否成功,可以在主库执行以下SQL命令,并检查从库是否同步了这些更改:

```sql
CREATE DATABASE test_db2; -- 创建数据库
USE test_db2; -- 切换到新数据库
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL
); -- 创建用户表
INSERT INTO users (name, email) VALUES ('tsj', '

版权声明:程序员胖胖胖虎阿 发表于 2024年12月24日 下午2:46。
转载请注明:MySql 9 in Docker 利用克隆插件搭建主从 | 胖虎的工具箱-编程导航

相关文章

暂无评论

暂无评论...