Docker进阶篇-安装MySQL主从复制

这篇具有很好参考价值的文章主要介绍了Docker进阶篇-安装MySQL主从复制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、MySQL主服务器

1、新建主服务器容器实例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 \
           -e MYSQL_ROOT_PASSWORD=root \
           -d mysql:5.7

Docker进阶篇-安装MySQL主从复制,docker,docker,mysql,容器,linux,运维

2、进入/mydata/mysql-master/conf目录下新建my.cnf

cd /mydata/mysql-master/conf
vim 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、修改完配置后重启master实例

docker restart mysql-master

Docker进阶篇-安装MySQL主从复制,docker,docker,mysql,容器,linux,运维

4、进入mysql-master容器

docker exec -it mysql-master /bin/bash
mysql -uroot -p
show databases;

 Docker进阶篇-安装MySQL主从复制,docker,docker,mysql,容器,linux,运维

5、master容器实例内创建数据同步用户

# 创建数据同步用户
create user 'slave'@'%' identified by '123456';
# 授权
grant replication slave, replication client on *.* to 'slave'@'%';

Docker进阶篇-安装MySQL主从复制,docker,docker,mysql,容器,linux,运维

二、MySQL从服务器

1、新建从服务器容器实例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 \
           -e MYSQL_ROOT_PASSWORD=root \
           -d mysql:5.7

Docker进阶篇-安装MySQL主从复制,docker,docker,mysql,容器,linux,运维

2、进入/mydata/mysql-slave/conf目录下新建my.cnf

cd /mydata/mysql-slave/conf
vim my.cnf
[mysqld]
## 设置server_id, 同一个局域网内需要唯一
server_id=102
## 指定不需要同步的数据库名称
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

Docker进阶篇-安装MySQL主从复制,docker,docker,mysql,容器,linux,运维

3、修改完配置后重启slave实例

docker restart mysql-slave

Docker进阶篇-安装MySQL主从复制,docker,docker,mysql,容器,linux,运维

三、主从同步配置

1、在主数据库中查看主从同步状态

# 进入主数据库容器
docker exec -it mysql-master /bin/bash
# 进入Mysql 
mysql -uroot -p
# 查看主从同步状态 
show master status;

Docker进阶篇-安装MySQL主从复制,docker,docker,mysql,容器,linux,运维

查看返回结果的文件名File、当前位置Position,下面用得上

2、进入mysql-slave数据库容器,配置主从复制

  • 进入从数据库
# 进入从数据库容器
docker exec -it mysql-slave /bin/bash
# 进入Mysql 
mysql -uroot -p
  • 配置从数据库所属的主数据库
change master to master_host='192.168.100.134',master_user='slave',master_password='123456',master_port=3307,master_log_file='mall-mysql-bin.000004',master_log_pos=154,master_connect_retry=30;

命令详解:

master_host:主数据库IP地址(即宿主机IP)

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

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

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

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

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

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

Docker进阶篇-安装MySQL主从复制,docker,docker,mysql,容器,linux,运维

3、在从数据库中查看主从同步状态

# \G 将横向的结果集表格转换成纵向展示
show slave status \G;

Docker进阶篇-安装MySQL主从复制,docker,docker,mysql,容器,linux,运维

Slave_IO_Running、Slave_SQL_Running目前两个值都为 No,未开启主从同步。

4、在从数据库中开启主从同步

start slave;

Docker进阶篇-安装MySQL主从复制,docker,docker,mysql,容器,linux,运维

5、查看从数据库状态发现已经同步

show slave status \G;

Docker进阶篇-安装MySQL主从复制,docker,docker,mysql,容器,linux,运维

6、主从复制测试

  • 主数据库新建库、使用库、新建表、插入数据
create database db01;
use db01;
create table t1(id int,name varchar(20));
insert into t1 values(1,'zhangsan');

Docker进阶篇-安装MySQL主从复制,docker,docker,mysql,容器,linux,运维

  • 从数据库使用库、查看记录
use db01;
select * from t1;

Docker进阶篇-安装MySQL主从复制,docker,docker,mysql,容器,linux,运维文章来源地址https://www.toymoban.com/news/detail-807856.html

到了这里,关于Docker进阶篇-安装MySQL主从复制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • docker实现mysql 主从复制

                                                                   💧记录一下如何在Docker中启动两个MySQL容器来进行主从复制💧           🌷 仰望天空,妳我亦是行人.✨ 🦄 个人主页——微风撞见云的博客🎐 🐳 《数据结构与算法》专栏的

    2023年04月11日
    浏览(28)
  • Docker集群部署-MySQL主从复制

    利用Docker实现MySQL主从复制架构的部署,实现1主1从集群配置。 要求实验主机能够连接外网,已经正确安装Docker,并关闭防火墙和selinux。 新建主服务器容器实例3307 # docker run -p 3307:3306 --name mysql-master -v /mydata/mysql-master/log:/var/log/mysql -v /mydata/mysql-master/data:/var/lib/mysql -v /m

    2024年02月12日
    浏览(26)
  • Docker 搭建MySQL主从复制-读写分离

    MySQL主从复制是一种常用的数据库高可用性解决方案,通过在主数据库上记录的数据变更,同步到一个或多个从数据库,实现数据的冗余备份和读写分离。在Docker环境下搭建MySQL主从复制和读写分离,不仅方便管理,还能充分发挥Docker的轻量、可移植性等特性。 在开始搭建之

    2024年02月22日
    浏览(33)
  • 在docker下进行mysql的主从复制

    Master Slave MySQL 主数据库端口为 3306,容器名称为 mysql-master,默认密码为 123456,-d 为后台运行。 MySQL 从数据库端口为 3307,容器名称为 mysql-slave,默认密码为 123456,-d 为后台运行。 进入容器: 修改配置文件: 找不到vim命令解决: 修改配置文件,添加如下配置: 重启容器:

    2024年02月12日
    浏览(23)
  • docker创建MySQL镜像,搭建主从复制环境

    学习黑马的MySQL时,在主从复制、分库分表、读写分离等阶段需要多台服务器,于是尝试用docker创建镜像搭建主从复制环境。 本文基于centos7搭建mysql镜像。 参考大佬文章: link 编写mysql_file文件: 由于需要进行编辑操作,所以需要额外下载vim 编写run.sh文件 build MySQL镜像 以特权

    2024年02月07日
    浏览(34)
  • 使用docker进行MYSQL主从复制(一主两从)

    目录 概述主从介绍 主从作用 主从作用有: 主从形式有:  配置步骤 主要配置 1创建三个进程 2修改配置文件 3主机配置 4从机配置 5将文件修改后,复制到容器里面 6进入主机进行配置 6.1创建用户 6.2给用户授权 6.3刷新权限 7进入从机进行配置 对M1S1 对M2S2  8最后开启主从 9测

    2024年02月16日
    浏览(31)
  • Docker搭建MySQL8.0主从复制(一主一从)

    宿主机使用的版本为 19045 的win10专业版,MySQL使用的是8.0+,Docker容器使用Linux。 略 修改Docker默认安装路径 安装包自己就提供了修改安装路径的功能,CMD中运行: “Docker Desktop Installer.exe” install --installation-dir= --installation-dir=path : changes the default installation location ( C:Program Fil

    2024年01月25日
    浏览(32)
  • 基于 Docker 的 MySQL 主从复制搭建(Mac M1版本)

    系统:Macbook M1 镜像版本:mysql:5.7 如果是要查 slave 连接不上 master 的问题,可以直接跳到文章末尾踩坑处 准备工作 拉取镜像 本地数据卷挂载 因为mysql不挂载的话,重启丢失数据,所以在本地创建三个空的文件夹 conf、data、log 即可 部署mysql_master(主) 运行master容器 不加 -

    2024年02月10日
    浏览(32)
  • Docker 容器搭建mysql 集群(主从数据库)

    目录 1.背景         2.设备及软件版本 3.开始搭建(这里不介绍安装docker及mysql) 3.1创建主数据库容器(master) 3.2查看容器是否创建成功 3.3进入修改容器下的/etc/my.cnf文件 3.3.1先拷贝my.cnf到容器外修改完再覆盖容器原来的my.cnf文件 3.4重启mysql容器使配置文件生效 3.5查看是否

    2024年02月08日
    浏览(88)
  • 在Centos Stream 9上Docker的实操教程(七) - Docker上实现MYSQL实现主从复制

    🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Micro麦可乐的博客 🐥《Docker实操教程》专栏以最新的Centos版本为基础进行Docker实操教程,入门到实战 🌺《RabbitMQ》本专栏主要介绍使用JAVA开发RabbitMQ的系列教程,从基础知识到项目实战 🌸《设计

    2024年02月10日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包