使用 docker 搭建 mysql 主从配置

这篇具有很好参考价值的文章主要介绍了使用 docker 搭建 mysql 主从配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

真正的配置文件是docker中 /etc/my.cnf
  1. 拉取镜像 docker pull mysql:5.7
  2. 启动主数据库和从数据库
docker run -p 3306:3306 --restart=always --name mysql_v1  -v /var/mysql/mysql_v1:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
docker run -p 3307:3306 --restart=always --name mysql_v2  -v /var/mysql/mysql_v2:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
  1. 用 Navicat 连接测试,都能连上说明启动正常
  2. 修改 docker 中 my.cnf 配置文件,需要复制到本机再修改,修改后再复制回 docker,可以用 centos 图形版自带的编辑工具
docker cp /var/mysql/mysql_v1_config/my.cnf mysql_v2:/etc/my.cnf
docker cp /var/mysql/mysql_v1_config/my.cnf mysql_v2:/etc/my.cnf

进入 master 创建账号

建master的复制账号
# 进入docker
docker exec -it mysql_v1 /bin/bash
# 进入 mysql
mysql -uroot -proot

#执行以下命令,创建复制账号,用户名和密码都是 wanger
grant replication slave on *.* to 'wanger'@'%' identified by 'wanger';

flush privileges;
  1. 修改 master my.cnf
[mysqld]
#修改配置文件:vim /etc/my.cnf
#主服务器唯一ID
server-id=1
#启用二进制日志
log-bin=mysql-bin

#上面两行最重要,下面的可以不配置


# 设置不要复制的数据库(可设置多个)
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
#设置需要复制的数据库 需要复制的主数据库名字
binlog-do-db=testdb
#设置logbin格式
binlog_format=STATEMENT

配置完,重启 mysql_v1, 进入mysql
输入Show master status;
记录 file 和 position
使用 docker 搭建 mysql 主从配置

  1. 修改从机 my.cnf
[mysqld]
#修改配置文件:vim /etc/my.cnf
#主服务器唯一ID
server-id=2
#启用二进制日志
log-bin=mysql-bin

重启从机镜像 docker restart mysql_v2
进入 mysql 执行以下命令

CHANGE MASTER TO MASTER_HOST='主机的ip地址',
MASTER_USER='wanger',
MASTER_PASSWORD='wanger',
MASTER_PORT=3306, 
MASTER_LOG_FILE='mysql-bin.000003',MASTER_LOG_POS=438;
#解释:
# 	CHANGE MASTER TO MASTER_HOST='主机的IP地址',
#	MASTER_USER='slave'(刚刚配置的用户名),
#	MASTER_PASSWORD='123456'(刚刚授权的密码),
#	master_port=主机开放的端口 我这里是3310端口,
#	MASTER_LOG_FILE='mysql-bin.具体数字',MASTER_LOG_POS=具体值(之前的Position);

查看从机状态show slave status\G

使用 docker 搭建 mysql 主从配置
两个都是 Yes 表示配置成功

Slave_IO_Running: Yes 
Slave_SQL_Running: Yes
  1. 停止复制stop slave;
  2. 重新配置主从
stop slave;
reset master;

参考
优化mysql
https://segmentfault.com/a/1190000040109897

指出了 docker 中 MySQL 配置文件的位置
https://blog.csdn.net/qq_45564783/article/details/126440171

教程
https://ost.51cto.com/posts/11591

更详细的教程
https://juejin.cn/post/7002217850521796639

官方 mysql docker 说明
https://hub.docker.com/_/mysql
使用 docker 搭建 mysql 主从配置文章来源地址https://www.toymoban.com/news/detail-435072.html

到了这里,关于使用 docker 搭建 mysql 主从配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 基于docker环境搭建Mysql主从

    ​ mysql主从复制的原理将主数据库的增删改查等操作记录到二进制日志文件中,从库接收主库日志文件,根据最后一次更新的 起始位置,同步复制到从数据库中,使得主从数据库保持一致。 Binary log:主数据库的二进制日志;Relay log:从服务器的中继日志。 复制过程: 1,主

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

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

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

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

    2024年02月07日
    浏览(35)
  • 利用docker搭建mysql主从服务器

    1.首先拉取docker镜像,我们这里使用5.7版本的mysql: 2.然后使用此镜像启动容器,这里需要分别启动主从两个容器 3.配置Master(主) 通过docker名称进入:docker exec -it master /bin/bash`/

    2024年02月11日
    浏览(34)
  • 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)
  • 基于docker搭建MySql主从数据库(详细步骤)

    在 Linux 中建立对应文件夹,用于存放MySql数据库相关,文件夹路径: /usr/local/software/mysql 。 在mysql文件下创建如下目录结构的文件:(3306为主数据库文件夹,笔者这里以对端口号来命名;3310为从数据库文件夹,3311同理,可依次往下) 上传 my.cnf 文件到 conf 文件夹下 以下是

    2024年02月09日
    浏览(41)
  • docker 配置 Mysql主从集群

    Docker version 20.10.17, build 100c701 MySQL Image version: 8.0.32 Docker container mysql-master is source. mysql-replica is replication. master == source. replica == slave.名称叫法不一样而已。 Choose one of the way,与replica同步数据两种情况: source有存在的数据并且你想同步到replica,这种需要mysqldump备份source数据,

    2023年04月14日
    浏览(33)
  • docker配置MySQL主从模式

    首先我们去准备一个MySQL8+,docker即可 创建MySQL数据卷目录    // 主服务器容器卷创建    mkdir -p /mydata/mysql-master/conf 创建容器并运行   这个是主的    docker run -d -p 3307:3306 --privileged=true -v /mydata/mysql-master/log:/var/log/mysql -v /mydata/mysql-master/data:/var/lib/mysql -v /mydata/mysql-master/conf

    2024年02月03日
    浏览(27)
  • 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日
    浏览(34)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包