滴水恩情 发表于 2024-10-7 15:54:50

【分布式微服务云原生】windows+docker+mysql5.7.44一主一从主从复制

摘要:
在Windows系统上通过Docker部署MySQL主从复制,以下是具体的步骤和命令,资助你设置一主一从的MySQL复制环境。
1. 主库设置

步骤1:运行MySQL主库容器
docker run --name mysql-master
-v "D:\mysql\mysql-master\log:/var/log/mysql"
-v "D:\mysql\mysql-master\data:/var/lib/mysql"
-v "D:\mysql\mysql-master\conf\my.cnf:/etc/mysql/conf.d/my.cnf"
-e MYSQL_ROOT_PASSWORD=password@312
-p 3306:3306 -d mysql:5.7.44
https://i-blog.csdnimg.cn/direct/42ed6964cbd1497790527271fca7db3a.png
注意:确保配置文件D:\mysql\mysql-master\conf\my.cnf的读写权限设置为只读,以避免启动容器时的权限错误。
步骤2:进入MySQL主库容器
docker exec -it mysql-master mysql -uroot -p
设置MySQL用户和权限,以便举行复制。
https://i-blog.csdnimg.cn/direct/1ec8dcd316bd4ff0bbad6304ad918bd5.png
步骤3:配置MySQL主库
CREATE USER 'root'@'%' IDENTIFIED BY 'password@312';
ALTER USER 'root'@'%' IDENTIFIED BY 'password@312';
GRANT REPLICATION SLAVE ON *.* TO 'root'@'%';
FLUSH PRIVILEGES;
SHOW MASTER STATUS;
这些命令创建了一个新的用户,并授予了复制权限。
https://i-blog.csdnimg.cn/direct/9112f56e99e444148bc2a8f5279ea4a5.png
流程图:主库设置
   步骤4:查看容器IP地址
docker inspect
-f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mysql-master
记录主库容器的IP地址,以便从库利用。
https://i-blog.csdnimg.cn/direct/9835b0ec540647e6bf08097826ae843f.png
2. 从库设置

步骤1:运行MySQL从库容器
docker run
--name mysql-slave
-v "D:\mysql\mysql-slave\log:/var/log/mysql"
-v "D:\mysql\mysql-slave\data:/var/lib/mysql"
-v "D:\mysql\mysql-slave\conf\my.cnf:/etc/mysql/conf.d/my.cnf"
-e MYSQL_ROOT_PASSWORD=password@312
-p 3307:3306 -d mysql:5.7.44
与主库设置类似,但端口映射为3307。
**注意:**确保配置文件D:\mysql\mysql-slave\conf\my.cnf的读写权限设置为只读。
步骤2:进入MySQL从库容器
docker exec -it mysql-slave mysql -uroot -p
与主库设置类似。配置从库以连接到主库。
步骤3:配置MySQL从库
CHANGE MASTER TO
MASTER_HOST='172.17.0.2',
MASTER_USER='root',
MASTER_PASSWORD='password@312',
MASTER_LOG_FILE='mysql-bin.000015',
MASTER_LOG_POS=154;
START SLAVE;
SHOW SLAVE STATUS;
https://i-blog.csdnimg.cn/direct/3ae991189445407c9c9e5a6871cf7e22.png
这些命令配置从库以连接到主库,并启动复制。
流程图:从库设置
   3. 验证主从复制

步骤1:在主库创建测试表
CREATE TABLE `test` (
`id` INT NOT NULL AUTO_INCREMENT,
`data` TEXT NOT NULL,
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
在主库创建一个测试表。
步骤2:在从库查抄数据同步
SELECT * FROM test;
在从库查询测试表,验证数据是否已同步。
流程图:验证主从复制
   内容汇总表格

章节命令说明主库设置docker run --name mysql-master ...运行MySQL主库容器主库设置docker exec -it mysql-master mysql -uroot -p
进入MySQL主库容器主库设置CREATE USER 'root'@'%' IDENTIFIED BY 'password';创建用户并授权主库设置SHOW MASTER STATUS;表现主库状态从库设置docker run --name mysql-slave ...运行MySQL从库容器从库设置docker exec -it mysql-slave mysql -uroot -p
进入MySQL从库容器从库设置CHANGE MASTER TO MASTER_HOST='IP', ...配置从库连接到主库从库设置START SLAVE;启动从库复制从库设置SHOW SLAVE STATUS;表现从库状态验证主从复制CREATE TABLE test ...在主库创建测试表验证主从复制SELECT * FROM test;
在从库查询测试表
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 【分布式微服务云原生】windows+docker+mysql5.7.44一主一从主从复制