当前位置: 首页 > news >正文

Docker搭建Mysql主主架构

文章目录

  • mysql主从架构原理
  • MySQL通用架构方案
  • 搭建步骤
    • 1. docker创建俩台mysql 端口:23306 和 33306
    • 2. 创建my.cnf,并将my.cnf拷贝到docker容器中,并重启生效
    • 3. 配置完成,开始执行sql,设置主从
    • 主主同步

mysql主从架构原理

在这里插入图片描述

MySQL通用架构方案

在这里插入图片描述

搭建步骤

1. docker创建俩台mysql 端口:23306 和 33306

docker run -p 23306:3306 --privileged=true --name mysql-23306
 -v /D/Docker/mysql-23306/mysql:/etc/mysql
 -v /D/Docker/mysql-23306/logs:/logs
 -v /D/Docker/mysql-23306/data:/var/lib/mysql
 -v /D/Docker/mysql-23306/mysql-files:/var/lib/mysql-files 
 -e MYSQL_ROOT_PASSWORD=admin -d mysql:5.7

2. 创建my.cnf,并将my.cnf拷贝到docker容器中,并重启生效

docker cp D:/Docker/mysql-23306/mysql/my.cnf mysql-23306:/etc/mysql/

配置文件内容如下:

[mysqld]
# 注意这里的server_id不能一样
server_id = 2
log_bin=mysql-bin
replicate-wild-ignore-table=mysql.*
replicate-wild-ignore-table=sys.*

链接mysql,使用sql查看刚刚配置的server_id

show VARIABLES like '%server_id%'

3. 配置完成,开始执行sql,设置主从

  1. docker查看俩台mysql的ip。
λ docker inspect mysql-23306 --format='{{.NetworkSettings.IPAddress}}
'172.17.0.2

λ docker  inspect mysql-33306 --format='{{.NetworkSettings.IPAddress}}
'172.17.0.3
  • 注意:这里是为了后面同步做准备。要写容器内的ip地址,而不能是127.0.0.1。否则,使用show slave status 命令查看状态的时候,Slave_IO_Runing会一直显示Colleting。
  1. 在23306创建账号,刷新权限
grant replication slave on *.* to 'rep'@'%' identified by '123456';
FLUSH PRIVILEGES;
# 查看主机状态,获取File和Position
show master status;
  1. 在33306执行change命令,并开启同步
    change命令语法:CHANGE MASTER TO MASTER_HOST='master_host_name', MASTER_USER='replication_user_name', MASTER_PASSWORD='replication_password', MASTER_LOG_FILE='recorded_log_file_name',MASTER_LOG_POS='POS';
CHANGE MASTER TO MASTER_HOST='172.17.0.2', MASTER_USER='rep', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=482;
start slave;
stop slave;
show slave status

至此,主从同步完成。

主主同步

接着我们把33306当作主库,23306当作从库,再次重复操作。

  1. 在33306创建账号,刷新权限
grant replication slave on *.* to 'rep'@'%' identified by '123456';
FLUSH PRIVILEGES;
show master status;
  1. 在23306执行change命令,并开启同步
CHANGE MASTER TO MASTER_HOST='172.17.0.3', MASTER_USER='rep', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=154;
start slave;
stop slave;
show slave status

相关文章:

  • 别人做网站要把什么要过来/北京网站营销与推广
  • wordpress同步到豆瓣/网络推广中心
  • 中国菲律宾地图全图/百度seo推广计划类型包含
  • 网站建设网站/竞价托管服务多少钱
  • aws 虚机wordpress教程/整站seo教程
  • 常州手机网站制作/无忧seo博客
  • DNS协议分析
  • 从全球顶级数据库大会 SIGMOD 看数据库发展趋势
  • Vue3——vuex的使用——axios网络请求的使用
  • 【论文阅读】(2020)Knapsack polytopes: a survey(上)
  • 数据结构 - AVL树 (Adelson-Velsky and Landis Tree)
  • 华为OD机试真题 C++ 实现【货币单位换算】【2022.11 Q4 新题】
  • 非零基础自学Golang 第16章 正则表达式 16.3 regexp包 16.4 小结 16.5 知识拓展
  • Linux系统 PHP安装expect扩展详解
  • (二十)Vue之非单文件组件
  • always块中时序逻辑 negedge rst_n和posedge rst实际电路
  • es笔记五之term-level的查询操作
  • 用简单伪随机数发生器实现随机中点位移分形(Matlab代码实现)