docker高级(mysql主从复制)

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

数据库密码需要设置成自己的!!!

1、创建容器master13307

#docker pull

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

2、进入/mysql/mysql-master/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、修改完配置后重启master实例

docker restart mysql-master

4、进入mysql-master容器

docker exec -it mysql-master /bin/bash

mysql -uroot -proot

#master容器实例内创建数据同步用户,slave,123456从库链接主表的账户密码,可以设置你自己的
CREATE USER 'slave'@'%' IDENTIFIED BY '123456';

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

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

show master status;

6、新建从服务器容器实例mysql-slave 13308

docker run -p 13308:3306 --name mysql-slave \
-v /mysql/mysql-slave/log:/var/log/mysql \
-v /mysql/mysql-slave/data:/var/lib/mysql \
-v /mysql/mysql-slave/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=root  \
-d mysql:5.7
#进入/mysql/mysql-slave/conf目录下新建my.cnf
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

7、重启slave

docker restart mysql-slave

#在主数据库中查看主从同步状态
show master status;

#进入mysql-slave容器
docker exec -it mysql-slave /bin/bash

mysql -uroot -proot

8、在从数据库slave中配置主从复制

change master to master_host='宿主机ip', master_user='slave', master_password='123456', master_port=13307, master_log_file='mall-mysql-bin.000001', master_log_pos=617, master_connect_retry=30;

#参数说明
master_host:主数据库的IP地址;
master_port:主数据库的运行端口;
master_user:在主数据库创建的用于同步数据的用户账号;
master_password:在主数据库创建的用于同步数据的用户密码;
show master status; 查看主机状态(需登录主机数据库查看)
master_log_file:指定从数据库要复制数据的日志文件,通过查看主数据的状态,获取File参数;
master_log_pos:指定从数据库从哪个位置开始复制数据,通过查看主数据的状态,获取Position参数;
master_connect_retry:连接失败重试的时间间隔,单位为秒。

#在从数据库中查看主从同步状态
show slave status \G;

#在从数据库中开启主从同步,登陆slave后台
start slave;

docker高级(mysql主从复制),docker,mysql,容器

在主库创建表,查看从库数据情况!!!

解决mysql中文乱码
vim my.conf文章来源地址https://www.toymoban.com/news/detail-670001.html

[client]
default_character_set=utf8
[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8
 character_set_filesystem = utf8

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

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

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

相关文章

  • 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主从复制

      查看返回结果的文件名 File 、当前位置 Position,下面用得上 进入从数据库 配置从数据库所属的主数据库 命令详解: master_host:主数据库IP地址(即宿主机IP) master_user:在主数据库创建的用于同步数据的用户账号 master_password:在主数据库创建的用于同步数据的用户密码

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

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

    2024年02月22日
    浏览(34)
  • 在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)
  • Docker进阶:mysql 主从复制、redis集群3主3从【扩缩容案例】

    💖The Begin💖点点关注,收藏不迷路💖 首先,确保你已经安装了Docker。 要下载特定版本的Tomcat镜像,可以在 docker pull 命令后面添加 image_name: tag 参数。其中 tag 制定了镜像的版本号。 解决插入中文报错: 总结: docker安装完mysql,运行实例之后,建议先修改完字符集编码后再

    2024年02月10日
    浏览(28)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包