美文网首页js css html
docker desktop 搭建mysql主从复制

docker desktop 搭建mysql主从复制

作者: charmingcheng | 来源:发表于2023-03-01 16:55 被阅读0次

下载安装docker desktop

官网地址

拉取mysql镜像

docker pull mysql:5.7

运行两个容器

主数据库

docker run -d -p 3333:3306 --name master -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

从数据库

docker run -d -p 3334:3306 --name slave -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

查看运行的容器

docker ps
image.png

查看master容器IP地址

docker inspect --format='{{.NetworkSettings.IPAddress}}' master
image.png

修改mysql配置文件

进入容器

docker exec -it master /bin/bash
ls
image.png
cd etc
ls
image.png

这里的my.cnf就是数据库配置
容器没有编辑器修改,复制到本地

复制容器内文件到本地

docker cp master:/etc/my.cnf D:\mysql\master

修改完成以后复制本地文件到容器

docker cp D:\mysql\master\my.cnf master:/etc

修改内容:
master

[mysqld]
server-id=101

## 开启二进制日志功能,可以随便取(关键)
log-bin=mysql-bin
secure_file_priv=/var/lib/mysql

#设置密码规则
default_authentication_plugin=mysql_native_password  

#最大连接数设置 根据实际需要 自行调整
max_connections=1000 

slave

[mysqld]
server-id=102

## 开启二进制日志功能,以备Slave作为其它Slave的Master时使用
log-bin=mysql-slave-bin

## relay_log配置中继日志
relay_log=edu-mysql-relay-bin
secure_file_priv=/var/lib/mysql

#设置密码规则
default_authentication_plugin=mysql_native_password

#最大连接数设置 根据实际需要 自行调整
max_connections=1000

修改完成以后重启两个容器

docker restart master slave

设置主从复制

进入master容器数据库

docker exec -it master /bin/bash
mysql -uroot -p123456

建立帐户并授权 slave

CREATE USER 'slave'@'%' IDENTIFIED BY '123456';
 
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';

查看master状态

show master status;
image.png

记录File和Position的值

记住不要对master数据库进行其他修改操作,否则File和Position的值会发生变化

进入slave容器数据库

docker exec -it slave /bin/bash
mysql -uroot -p123456

复制主机命令

CHANGE MASTER TO MASTER_HOST='172.17.0.2',
MASTER_USER='slave',
MASTER_PASSWORD='123456',
MASTER_PORT=3306, 
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=1045;

MASTER_HOST: master数据库IP地址
MASTER_LOG_FILE:master数据库File
MASTER_LOG_POS: master数据库Position

启动从服务器复制功能

start slave;

查看从服务器状态

show slave status\G;
image.png

这两条都为Yes,说明成功,通过navicat,操作master服务器新增数据库,表,数据时,slave服务器会相应的生成数据库,表和数据

相关文章

网友评论

    本文标题:docker desktop 搭建mysql主从复制

    本文链接:https://www.haomeiwen.com/subject/dptdldtx.html