首页 > 数据库 >docker 安装mysql主从模式

docker 安装mysql主从模式

时间:2022-10-18 12:33:10浏览次数:45  
标签:slave log ## 数据库 master mysql docker 主从

1.创建主数据库容器

docker run -p 3306:3306 --name mysql-master -v /zgbo/mysql_m/log:/var/log/mysql -v /zgbo/mysql_m/data:/var/lib/mysql -v /zgbo/mysql_m/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7

 2.创建主数据库配置文件

vim /zgbo/mysql_m/conf/my.cnf
[mysqld]
## 设置server_id,同一局域网中需要唯一
server_id=101 
## 指定不需要同步的数据库名称
binlog-ignore-db=mysql  
## 开启二进制日志功能
log-bin=mall-mysql-bin  
## 设置二进制日志使用内存大小(事务)
binlog_cache_size=1M  
## 设置使用的二进制日志格式(mixed,statement,row)
binlog_format=mixed  
## 二进制日志过期清理时间。默认值为0,表示不自动清理。
expire_logs_days=7  
## 跳过主从复制中遇到的所有错误或指定类型的错误,避免slave端复制中断。
## 如:1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致
slave_skip_errors=1062

 3.重启容器

docker restart mysql-master

4.进入容器 创建用户

docker exec -it mysql-master bash

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

 5.创建从数据库容器

docker run -p 3307:3306 --name mysql-slave -v /zgbo/mysql_s/log:/var/log/mysql -v /zgbo/mysql_s/data:/var/lib/mysql -v /zgbo/mysql_s/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7

 6.创建从数据库配置文件

vim /zgbo/mysql_s/conf/my.cnf
[mysqld]
## 设置server_id,同一局域网中需要唯一
server_id=103
## 指定不需要同步的数据库名称
binlog-ignore-db=mysql  
## 开启二进制日志功能,以备Slave作为其它数据库实例的Master时使用
log-bin=mall-mysql-slave1-bin  
## 设置二进制日志使用内存大小(事务)
binlog_cache_size=1M  
## 设置使用的二进制日志格式(mixed,statement,row)
binlog_format=mixed  
## 二进制日志过期清理时间。默认值为0,表示不自动清理。
expire_logs_days=7  
## 跳过主从复制中遇到的所有错误或指定类型的错误,避免slave端复制中断。
## 如:1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致
slave_skip_errors=1062  
## relay_log配置中继日志
relay_log=mall-mysql-relay-bin  
## log_slave_updates表示slave将复制事件写进自己的二进制日志
log_slave_updates=1  
## slave设置为只读(具有super权限的用户除外)
read_only=1

 

7.重启从数据库容器

docker restart mysql-slave

 8.进入容器

docker exec -it mysql-slave bash

9.进入数据库配置主从

mysql -uroot -proot
主从配置

change master to master_host='172.16.15.187', master_user='slave', master_password='123456', master_port=3306, master_log_file='mall-mysql-bin.000001', master_log_pos=617, master_connect_retry=30;

参数说明

  master_host:主数据库的IP地址;

  master_port:主数据库的运行端口;

  master_user:在主数据库创建的用于同步数据的用户账号;

  master_password:在主数据库创建的用于同步数据的用户密码;

  master_log_file:指定从数据库要复制数据的日志文件,通过查看主数据的状态,获取File参数;

  master_log_pos:指定从数据库从哪个位置开始复制数据,通过查看主数据的状态,获取Position参数;

  master_connect_retry:连接失败重试的时间间隔,单位为秒。

 10.查看主从同步状态

show slave status \G;

No是关

 11.开启主从

start slave;

 12.在主数据库建表保存数据测试是否成功

标签:slave,log,##,数据库,master,mysql,docker,主从
From: https://www.cnblogs.com/dabo-tian/p/16802181.html

相关文章

  • 像 Mysql 和 MongoDB 这种大型软件在设计上都是精益求精的,它们为什么选择B树,B+树这些
    为什么MongoDB(索引)使用B-树而Mysql使用B+树?B树与B+树,其比较大的特点是:B树对于特定记录的查询,其时间复杂度更低。而B+树对于范围查询则更加方便,另外B+树相对......
  • Nexus3 docker hosted私有仓库搭建指南
     1、登录至nexus3控制中心;选择 BlobStores创建一个dockerblod   2、创建docker(hosted)类型仓库  指定私有仓库名指定端口允许拉取方式指定docker......
  • mysql sql优化相关[更新中]
    1.慢sql查询。select*frominformation_schema.processlistwherecommandnotin('Sleep')andusernotin('mydba','event_scheduler','repl','binlogbak','syst......
  • docker使用
    一、基于Linux安装Docker1、下载关于Docker的依赖环境yum-yinstallyum-utilsdevice-mapper-persistent-datalvm212、设置镜像下载Docker的镜像源yum-config-manager-......
  • docker部署etcd集群单节点失败
    1、部署etcd3节点集群后其中一个节点报错2、查看etcd日志3、对比秘钥值是否正常4、看下memberlist5、备份etcd数据eesnapshotsave./snapshot2022-10-18.db6......
  • Mysql查询表结构
    平时用的数据库简单操作查看表的结构Desc表名;  查看数据库中的表showtables; 查看数据库建表语句showcreatetable表名  ......
  • docker学习16-Docker 容器设置时区
    前言最近遇到一个问题,在本机部署操作时,获取本机当前时间存到mysql数据库,时间是当前北京时间没问题。但是用Docker容器部署项目,发现时间少了8个小时,于是想到是docker容器......
  • MySQL数据库SQL语法常规操作
    必备sql和表关系及授权graphLR执行1[必备sql和授权]执行2[SQL强化和实践]执行3[索引和函数以及存储过程]执行4[Python操作mysql和应用]执行5[常见SQL语句......
  • MySQL 8.0.31并行构建索引特性管窥
    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。GreatSQL是MySQL的国产分支版本,使用上与MySQL一致。本文来源:原创投稿;作者:YeJinrong/叶金荣测......
  • docker的overlay文件占用磁盘太大的解决-portainer
    【看网上都是什么迁移文件的就感觉不靠谱,治标不治本啊(这不应该是一个新生代coder的样子)】du-sh*一路查下去,发现overlay这个文件夹已经爆了。dockersystemprune-a才......