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

docker学习(七、搭建mysql8.2主从)

一、主库搭建

1.构建主库镜像

# 运行mysql镜像,配置端口3307为主库

docker run -p 3307:3306 --name mysql-master --privileged=true -v /mydata/mysql-master/log:/var/log/mysql -v /mydata/mysql-master/data:/var/lib/mysql -v /mydata/mysql-master/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=root -d mysql:latest

# 查看是否运行成功

docker ps -a

2.配置文件

# 进入配置文件

cd /mydata/mysql-master/conf

# 创建my.cnf文件并写入配置

sudo touch my.cnf

sudo chmod 777 my.cnf

vim my.cnf

配置内容如下:

[mysqld]
# 同一局域网中唯一
server_id=1
## 指定不需要同步的数据库名称
binlog-ignore-db=mysql
binlog-ignore-db=performance_schema
binlog-ignore-db=information_schema
binlog-ignore-db=sys
## 开启二进制日志功能
log-bin=on
## 设置二进制日志使用内存大小(事务)
binlog_cache_size=1M
## 设置使用的二进制日志格式(mixed,statement,row)
binlog_format=mixed
## 二进制日志过期清理时间。默认值为0,不自动清理。
binlog_expire_logs_seconds=604800

3.重启主库

# 重启容器

docker restart mysql-master

# 确认重启成功

docker ps -a

 4.进入数据库配置同步用户

# 进入容器

docker exec -it mysql-master /bin/bash

# 登录数据库

mysql -uroot -proot

# 创建同步用户,给从库同步数据使用

CREATE USER 'slave'@'%' IDENTIFIED mysql_native_password BY '123456';

# 给用户授权

GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'slave'@'%';

二、从库搭建 

 1.启动从库容器

# 运行mysql镜像,配置端口3308为从库

docker run -p 3308:3306 --name mysql-slave --privileged=true -v /mydata/mysql-slave/log:/var/log/mysql -v /mydata/mysql-slave/data:/var/lib/mysql -v /mydata/mysql-slave/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=root -d mysql:latest

# 查看是否运行成功

docker ps -a

 2.配置文件

# 进入配置文件

cd /mydata/mysql-slave/conf

# 创建my.cnf文件并写入配置

sudo touch my.cnf

sudo chmod 777 my.cnf

vim my.cnf

配置内容如下:

[mysqld]
# 同一局域网中唯一
server_id=2
## 指定不需要同步的数据库名称
binlog-ignore-db=mysql
binlog-ignore-db=performance_schema
binlog-ignore-db=information_schema
binlog-ignore-db=sys
## 开启二进制日志功能
log-bin=on
## 设置二进制日志使用内存大小(事务)
binlog_cache_size=1M
## 设置使用的二进制日志格式(mixed,statement,row)
binlog_format=mixed
## 二进制日志过期清理时间。默认值为0,不自动清理。
binlog_expire_logs_seconds=604800
## relay_log配置中继日志
relay_log=mall-mysql-relay-bin
## log_slave_updates表示slave将复制事件写进自己的二进制日志
log_slave_updates=1
## slave设置为只读(具有super权限的用户除外)
read_only=1

3.重启主库

# 重启容器

docker restart mysql-slave

# 确认重启成功

docker ps -a

 三、查看主从同步状态

1.进入到主库

docker exec -it mysql-master /bin/bash

mysql -uroot -proot

show master status;

2.进入到从库,配置主从复制

change master to master_host='172.27.64.169',master_user='slave',master_password='123456',master_port=3307,master_log_file='binlog.000008',master_log_pos=1301,master_connect_retry=30;

  • master_host='主库ip地址'
  • master_user='主库给从库用的用户名'
  • master_password='对应的密码',master_port=主库端口号
  • master_log_file='指定从库要复制数据的日志文件,通过查看主库的状态,获取File参数'
  • master_log_pos=指定从库要复制数据的起始位置,通过查看主库的状态,获取Position参数
  • master_connect_retry=连接失败重试的时间间隔,单位秒

most_host:

        linux可以通过ifconfig找到正确的ip;

        windows可以通过ipconfig找到正确的ip;

3.在从库中查看主从同步状态

show slave status \G;

4.在从库中开启同步 

# 开启从库同步

start slave;

# 再次查看状态,确认上面的NO NO变成Yes

show slave status \G;

5.自行测试吧

主库创建表及数据,查看从库是否同步成功

完结~ 

这里我遇到了从库配置主从复制的时候一直connecting的问题,下一章介绍解决全过程!

http://www.lryc.cn/news/258307.html

相关文章:

  • 消费升级:无人零售的崛起与优势
  • 【开题报告】基于SpringBoot的煤炭企业安全宣传学习平台的设计与实现
  • 机器连接和工业边缘计算
  • java系列-LinkedHashMap
  • 【linux】查看CPU和内存信息
  • 【产品经理】产品专业化提升路径
  • Ubuntu(WSL)卸载与安装指定版本的 openssl
  • leetcode1115. 交替打印 FooBar
  • qt有哪些常用控件
  • docker 手工redis7.x cluster
  • 【华为OD题库-082】TLV解析II-Java
  • Memcached学习
  • 2024最新金三银四软件测试面试题
  • 微信小程序动态加载图表[echart]
  • 《opencv实用探索·十八》Camshift进行目标追踪流程
  • MAP: Multimodal Uncertainty-Aware Vision-Language Pre-training Model
  • 【SpringCache】快速入门 通俗易懂
  • GeoTools学习笔记
  • 短剧规模达到了百亿元,短剧分销成为短剧新模式
  • Kotlin 中的 `as` 关键字:类型转换的艺术
  • CDN可以给企业网站带来哪些优势?
  • 离线运行Oracle Database In-Memory Advisor
  • 2,PyCharm的下载与安装
  • HNU计算机视觉作业一
  • Java:SpringBoot获取当前运行的环境activeProfile
  • 射频功率放大器的参数有哪些
  • 3-5、多态性
  • 什么是https 加密协议?
  • 低压无功补偿在分布式光伏现场中的应用
  • 人工智能技术在宽域飞行器控制中的应用