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

打印 上一主题 下一主题

主题 1652|帖子 1652|积分 4956

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

1. 主库设置

步骤1:运行MySQL主库容器
  1. docker run --name mysql-master
  2. -v "D:\mysql\mysql-master\log:/var/log/mysql"
  3. -v "D:\mysql\mysql-master\data:/var/lib/mysql"
  4. -v "D:\mysql\mysql-master\conf\my.cnf:/etc/mysql/conf.d/my.cnf"
  5. -e MYSQL_ROOT_PASSWORD=password@312
  6. -p 3306:3306 -d mysql:5.7.44
复制代码

注意:确保配置文件D:\mysql\mysql-master\conf\my.cnf的读写权限设置为只读,以避免启动容器时的权限错误。
步骤2:进入MySQL主库容器
  1. docker exec -it mysql-master mysql -uroot -p
复制代码
设置MySQL用户和权限,以便举行复制。

步骤3:配置MySQL主库
  1. CREATE USER 'root'@'%' IDENTIFIED BY 'password@312';
  2. ALTER USER 'root'@'%' IDENTIFIED BY 'password@312';
  3. GRANT REPLICATION SLAVE ON *.* TO 'root'@'%';
  4. FLUSH PRIVILEGES;
  5. SHOW MASTER STATUS;
复制代码
这些命令创建了一个新的用户,并授予了复制权限。

流程图:主库设置
     步骤4:查看容器IP地址
  1. docker inspect
  2. -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mysql-master
复制代码
记录主库容器的IP地址,以便从库利用。

2. 从库设置

步骤1:运行MySQL从库容器
  1. docker run
  2. --name mysql-slave
  3. -v "D:\mysql\mysql-slave\log:/var/log/mysql"
  4. -v "D:\mysql\mysql-slave\data:/var/lib/mysql"
  5. -v "D:\mysql\mysql-slave\conf\my.cnf:/etc/mysql/conf.d/my.cnf"
  6. -e MYSQL_ROOT_PASSWORD=password@312
  7. -p 3307:3306 -d mysql:5.7.44
复制代码
与主库设置类似,但端口映射为3307。
**注意:**确保配置文件D:\mysql\mysql-slave\conf\my.cnf的读写权限设置为只读。
步骤2:进入MySQL从库容器
  1. docker exec -it mysql-slave mysql -uroot -p
复制代码
与主库设置类似。配置从库以连接到主库。
步骤3:配置MySQL从库
  1. CHANGE MASTER TO
  2. MASTER_HOST='172.17.0.2',
  3. MASTER_USER='root',
  4. MASTER_PASSWORD='password@312',
  5. MASTER_LOG_FILE='mysql-bin.000015',
  6. MASTER_LOG_POS=154;
  7. START SLAVE;
  8. SHOW SLAVE STATUS;
复制代码

这些命令配置从库以连接到主库,并启动复制。
流程图:从库设置
     3. 验证主从复制

步骤1:在主库创建测试表
  1. CREATE TABLE `test` (
  2.   `id` INT NOT NULL AUTO_INCREMENT,
  3.   `data` TEXT NOT NULL,
  4.   `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  5.   PRIMARY KEY (`id`)
  6. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
复制代码
在主库创建一个测试表。
步骤2:在从库查抄数据同步
  1. 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企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

滴水恩情

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表