docker-mysql-主从设计

一、docker主从

1.新建主从镜像

docker run -p 3307:3306 --name mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7.28
docker run -p 3308:3306 --name mysqlslave -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7.28

2.分别进入两个容器,修改配置文件

#1.进入容器
$ docker exec -it mysql sh
$ docker exec -it mysqlslave sh
#2.分别安装vim
$ apt-get update
$ apt-get install vim
#3.mysql的配置
$ cd etc/mysql
$ vim my.cnf
    #填入以下内容
        [mysqld]
        #保证唯一性
        server-id=1 
        #开启binlog日志并设置文件名字
        log_bin=master-bin
#4.mysqlslave的配置
$ cd etc/mysql
$ vim my.cnf
    #填入以下内容
    	[mysqld]
		#保证唯一性
         server-id=2
         #开启relay日志并设置文件名字
         relay_log=slave-relay	

#5.重启容器 或 service mysql restart

3.在nv上操作

3.1查看mysql-master状态配置并进行连接,记录圈起来的部分

show master status;

在这里插入图片描述

3.2在mysql-slave执行sql语句

  • master_host :Master的地址,这儿需要的是容器在的独立IP 可以进入容器查看,也可执行docker指令查看:
docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称/容器id
  • master_usermaster_password:用于同步的用户的密码,实际中肯定不能使用root用户
  • master_port:容器的端口,不是映射端口哦
  • master_log_file:指定 Slave 从哪个日志文件file开始复制数据
  • master_log_pos:从哪个 Position 开始读,都是对应master中的值
change master to master_host='172.17.0.2',
master_user='root',
master_password='root',
master_port=3306,
master_log_file='master-bin.000001',
master_log_pos= 1563;

启动slave

start slave;

查看从节点信息

show slave status

在这里插入图片描述

4.其他

这个主从架构师可能失败的,如果查看slave状态发现Slave_SQL_Running=no 就表示主从同步失败了,可能是在从库进行了些,导致从主库同步过来主键冲突。也可能是从库服务重启之后有事务回滚了。如果是从库事务回滚可以:

stop slave ;
set GLOBAL SQL_SLAVE_SKIP_COUNTER=1; 
start slave ;

还可以重新设置主节点的binlog信息 重新指定position,可能需要处理一下从节点上面的数据

其他参数:

#master:
#需要同步的二进制数据库名 
binlog-do-db=masterdemo 
#只保留7天的二进制日志,以防磁盘被日志占满(可选) 
expire-logs-days = 7 
#不备份的数据库 
binlog-ignore-db=xxx1
binlog-ignore-db=xxx2

#从库:
#如果master库名[mastdemo]与salve库名[mastdemo01]不同,使用以下配置[需要做映射] 
replicate-rewrite-db = xxx -> aaa
#如果不是要全部同步[默认全部同步],则指定需要同步的表 
replicate-wild-do-table=xxx1
replicate-wild-do-table=xxx2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值