返回顶部
首页 > 资讯 > 数据库 >docker中Mylsq的主从搭建(超详细)一主多从
  • 903
分享到

docker中Mylsq的主从搭建(超详细)一主多从

docker中Mylsq的主从搭建(超详细)一主多从 2019-10-01 01:10:55 903人浏览 才女
摘要

1. 安装Docker 这里可以参考菜鸟教程的Centos安装docker , https://www.runoob.com/docker/centos-docker-install.html 2. Docker中使用挂载模式安装Mys

docker中Mylsq的主从搭建(超详细)一主多从

1. 安装Docker

这里可以参考菜鸟教程Centos安装docker , https://www.runoob.com/docker/centos-docker-install.html

2. Docker中使用挂载模式安装Mysql

          使用docker pull mysql:5.7.31,从docker仓库中拉取mysql5.7.31版本

            使用docker images 查看本地的docker镜像,这个IMAGE ID很重要,虽然docker可以用应用的名称来启动,但是我建议还是使用IMAGE ID,稳一手。

          然后我们进入home目录(home目录是我自己的习惯,你们可以选择其他文件夹),创建以下的文件结构


home  

|                    ├ master

|                    |                    ├ my.cnf mysql外挂配置文件

|                    |                    ├ /mysql mysql数据以及日志文件存储地址

|               |                    ├ /conf.d mysql多配置文件存储地址(本文中未使用)

|                    ├ slave1

|                    |                    ├ my.cnf mysql外挂配置文件

|                    |                    ├ /mysql mysql数据以及日志文件存储地址

|               |                    ├ /conf.d mysql多配置文件存储地址(本文中未使用)

|                    ├ slave2

|                    |                    ├ my.cnf mysql外挂配置文件

|                    |                    ├ /mysql mysql数据以及日志文件存储地址

|               |                    ├ /conf.d mysql多配置文件存储地址(本文中未使用)

            /home/master/my.cnf/home/slave1/my.cnf/home/slave2/my.cnf写入基础的mysql配置,这个步骤主要是要实现配置文件的挂载,稍后会写入主从的配置,写完my.cnf文件之后把文件权限设置为chmod 755 my.cnfchmod 777 mysql/chmod 777 conf.d/,否则docker无法读取文件和文件夹。

[mysqld]

user=mysql

datadir = /var/lib/mysql/data

character-set-server=utf8

default_authentication_plugin=mysql_native_passWord



[client]

default-character-set=utf8



[mysql]

default-character-set=utf8

运行命令

docker run --restart=always --privileged=true -d -v /home/mysql/master/mysql/:/var/lib/mysql -v /home/mysql/master/conf.d:/etc/mysql/conf.d -v /home/mysql/master/my.cnf:/etc/mysql/my.cnf -p 0.0.0.0:3307:3306/tcp --name mysql-master-dev -e MYSQL_ROOT_PASSWORD=123456 d05c76dbbfcf(这里替换成你自己的镜像源ID)

参数解析:

--restart 设置容器自动重启。

-- privileged 设置容器内的bash用户权限为root

-v 挂载环境,后面携带的参数和你要挂载的mysql类型一致,例如Master使用master文件夹下的文件和文件夹,Slave用对应slave下的文件和文件夹。

-p 端口号,端口我们修改一下,Master使用3307Slave1使用3317Slave2使用3327

--name 容器名,docker容器的名字是唯一的,不可重复。

-e 容器启动参数,这里我们设置mysql的root用户密码

 

            启动完三个mysql之后,可以看一下我们在运行的容器 docker ps。可以看到我们的主从mysql都已经启动完毕了。

3. 配置mysql的主从

      创建测试用的demo数据库,三个mysql中都创建,如果配置已有数据的数据库,则先停止mysqlMaster写入功能,将数据库备份至从库。

配置Master:编辑 /home/mysql/master/my.cnf文件

[mysqld]

user = mysql

datadir = /var/lib/mysql/data

character-set-server = utf8

default_authentication_plugin = mysql_native_password



#新增配置(记得把注解删掉,文本的编码不一致时,mysql无法识别配置文件)

#服务器ID,要求唯一,主从的server_id不能相同

server_id = 1

#log_bin文件地址(docker容器中地址)

log-bin = /var/lib/mysql/data/logs/mysql-bin

#需要同步的数据库,可以有多个

binlog-do-db = demo

#binlog-do-db=demo2

#开启Slave记录日志

log-slave-updates

#执行事物多少次之后,将执行sql记录到磁盘中

sync_binlog = 1

#自增偏移量:自增长字段从那个数开始,他的取值范围是

auto_increment_offset = 1

#自增步长:自增长字段每次递增的量

auto_increment_increment = 1

#日志清理时间(天)

expire_logs_days = 7

#信任存储函数创建者

log_bin_trust_function_creators = 1

#bin_log日志记录模式

#bin_log复制类型

#          Statement(默认格式):每一条会修改数据的 SQL 都会记录到 master 的 bin-log 中。slave 在复制的时候 SQL 进程会解析成和原来 master 端执行过的相同的 SQL 再次执行。

#          Row:日志中会记录成每一行数据被修改的形式,然后在 slave 端再对相同的数据进行修改。

#          Mixed:MySQL 会根据执行的每一条具体的 SQL 语句来区分对待记录的日志形式,也就是在 statement 和 row 之间选择一种。

binlog_fORMat=mixed

#新增配置(记得把注解删掉,文本的编码不一致时,mysql无法识别配置文件)





[client]

default-character-set=utf8



[mysql]

default-character-set=utf8

            使用docker ps命令,查看Master主机的CONTaiNER ID

            重启Master主机:docker restart cbff024b99f9(你自己的container id -t 1

            配置Slave:编辑/home/mysql/slave1/my.cnf文件

            使用docker ps命令,查看Slave主机的CONTAINER ID

            重启Slave1主机:docker restart cbff024b99f9(你自己的container id -t 1

[mysqld]

user=mysql

datadir = /var/lib/mysql/data

character-set-server=utf8

default_authentication_plugin=mysql_native_password

#新增配置(记得把注解删掉,文本的编码不一致时,mysql无法识别配置文件)

#与Master相同配置不再赘述

server_id = 2

log-bin = mysql-bin

log-slave-updates

sync_binlog = 0

innodb_flush_log_at_trx_commit = 0       

#从机复制那个库

replicate-do-db = demo     

#设置在多少秒没收到主库传来的Binary Logs events之后,从库认为网络超时,Slave IO线程会重新连接主库。

slave-net-timeout = 60                   

log_bin_trust_function_creators = 1

#新增配置(记得把注解删掉,文本的编码不一致时,mysql无法识别配置文件)





[client]

default-character-set=utf8



[mysql]

default-character-set=utf8

            同理,修改Slave2的配置。

           

            使用docker inspect cbff024b99f9(你自己的container id,

            查看MasterSlavedocker内的IP地址:

           

            可以看到MasterIPAddress172.17.0.2

            同理可得Slave1IPAddress172.17.0.3Slave2IPAddress172.17.0.4

            创建Slave的账号,登录Master机器,

            grant replication slave on *.* to "slave1Slave1用户名)"@"172.17.0.3Slave1IP地址)" identified by "123456Slave1密码)";

grant replication slave on *.* to "slave2Slave2用户名)"@"172.17.0.4Slave2IP地址)" identified by "123456Slave2密码)";

            flush privileges;

 

            然后查看Master的状态,show master status

            进入Slave1,执行

            change master to master_host="172.17.0.2",master_user="slave1",master_password="123456",master_log_file="mysql-bin.000001",master_log_pos=3379;

            master_log_file为刚刚查看主机状态的File值。

            master_log_pos为刚刚查看主机状态的Position值。

            Slave2同理

4. 测试主从

进入demo数据库,创建demo表,

CREATE TABLE `demo` (

  `id` int(11) NOT NULL AUTO_INCREMENT,

  `name` varchar(255) DEFAULT NULL,

  PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

insert into demo(name) values ("张三"),("李四")

 

然后查看slave1和slave2的demo表中数据,如果与mater中数据一致,则docker中主从搭建成功。

您可能感兴趣的文档:

--结束END--

本文标题: docker中Mylsq的主从搭建(超详细)一主多从

本文链接: https://lsjlt.com/news/7623.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • docker中Mylsq的主从搭建(超详细)一主多从
    1. 安装docker 这里可以参考菜鸟教程的CentOS安装docker , https://www.runoob.com/docker/centos-docker-install.html 2. Docker中使用挂载模式安装mys...
    99+
    2019-10-01
    docker中Mylsq的主从搭建(超详细)一主多从
  • MySQL(多主一从)搭建
    拓扑图:实验环境:(三台虚拟机)server1(master1-178)、server2(master2-179)、server3(slave-175)Master1:(178)安装软件yum instal...
    99+
    2024-04-02
  • db2V10.1中HADR一主多从搭建
    在 HADR 多备机这一新的特性中,备机数据库被分为两类,一类是主要备机(Principal Standby)另一类是辅助备机(Auxiliary Standby)一、目录准备mkdir -p /home/...
    99+
    2024-04-02
  • mysql搭建主从复制(一主一从,双主双从)
    主从复制原理 Mysql 中有一个binlog 二进制日志,这个日志会记录下所有修改了的SQL 语句,从服务器把主服务器上的binlog二进制日志在指定的位置开始复制主服务器所进行修改的语句到从服务器上执行一遍。 流程图 搭建一...
    99+
    2016-07-17
    mysql搭建主从复制(一主一从,双主双从)
  • 【Mysql】Mariadb多主一从的搭建
    背景:       目前MySQL依然只支持一个Slave从一个Master复制数据,虽然也可以做到一主多备(M->S),双主复制(M<...
    99+
    2024-04-02
  • Docker搭建Mysql主从复制
    Docker搭建Mysql主从复制 前言 相信我,看完这一篇,mysql主从复制能遇到的错误在我这里都遇到了,docker能遇到的错误在我这里也遇到了,包括centos的错误,看吧,都是成长 do...
    99+
    2023-09-24
    docker mysql 容器 Linux
  • MySQL主从搭建(多主一从)的实现思路与步骤
    背景: 由于最近公司项目好像有点受不住并发压力了,优化迫在眉睫。由于当前系统是单数据库系统原因,能优化的地方也尽力优化了但是数据库瓶颈还是严重限制了项目的并发能力。所以就考虑了添加数据库来增大项目并发能力。 思路:...
    99+
    2022-05-24
    mysql主从搭建教程 mysql 主从配置 数据库主从搭建
  • Mysql主从数据库搭建(一主两从)
    目录 1、服务器规划 2、主从同步流程 3、主从搭建 3.1、master节点上配置文件修改 3.2、master节点创建同步用户和权限 3.3、slave1和slave2节点配置文件修改 3.4、slave1和slave2节点执行同步任...
    99+
    2023-08-31
    数据库 mysql 服务器
  • MySQL搭建主从复制详细步骤
    下面讲讲关于MySQL搭建主从复制详细步骤,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完MySQL搭建主从复制详细步骤这篇文章你一定会有所受益。搭建MySQL主从复制需要提前准...
    99+
    2024-04-02
  • 使用docker-compose搭建mysql主从
    目录 一、docker-compose和主从的简介 1、docker-compose 2、mysql主从 3、为什么要使用docke-compose? 二、部署mysql主从集群 1、mysql-master主库 2、mysql-slave...
    99+
    2023-09-26
    docker mysql java 数据库 微服务
  • MySQL5.7.18主从复制搭建一主一从的示例分析
    这篇文章主要介绍了MySQL5.7.18主从复制搭建一主一从的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、复制原理主服务器将更...
    99+
    2024-04-02
  • Docker搭建MySQ主从复制原理
    目录简介使用Docker拉取MySQL镜像查看镜像启动MySQL主从容器配置Master配置Slave开启Master-Slave主从复制简介 通过docker学习主从复制可以节省资...
    99+
    2024-04-02
  • Docker搭建MySQL5.7主从复制的实现
    目录1、新建mysql-master主服务器容器实例33072、新建mysql-master主服务器配置文件my.cnf3 重启master实例4 进入mysql-master容器5 master容器实例内创建数据同步用...
    99+
    2022-06-22
    DockerMySQL主从复制 Docker搭建MySQL主从
  • MySQL主从切换的超详细步骤
    目录版本:前言:主从环境:切换步骤:总结版本: mysql-5.7.32+GTID 前言: 本文讲述MySQL主从切换流程,切换步骤主要针对主备正常切换以及主库宕机备库切换两个场景,掌握正确的切换流程,可以有效避免切换过...
    99+
    2022-06-28
    mysql主从切换原理 mysql主从切换步骤 数据库主从切换
  • 用XtraBackup搭建mysql主从复制的详细步骤
    本篇内容介绍了“用XtraBackup搭建mysql主从复制的详细步骤”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够...
    99+
    2024-04-02
  • mysql主主和主从的搭建方法
    这篇文章主要介绍“mysql主主和主从的搭建方法”,在日常操作中,相信很多人在mysql主主和主从的搭建方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql主主和主从...
    99+
    2024-04-02
  • mysql两主一从怎么搭建
    mysql两主一从的搭建示例代码:[root@localhost etc]# cat my.cnf# For advice on how to cha...
    99+
    2024-04-02
  • 如何搭建基于Docker的MySQL主从复制
    下文主要给大家带来如何搭建基于Docker的MySQL主从复制,希望这些内容能够带给大家实际用处,这也是我编辑如何搭建基于Docker的MySQL主从复制这篇文章的主要目的。好了,废话不多说,大家直接看下文...
    99+
    2024-04-02
  • 基于Docker搭建Redis主从集群的实现
    目录1、拉取 Redis 镜像2、创建 6 个 Redis 容器3、启动 Redis 容器4、组建 Redis 集群5、关于Redis集群搭建最近陆陆续续有不少园友加我好友咨询 re...
    99+
    2024-04-02
  • docker如何搭建redis主从哨兵集群
    这篇文章主要讲解了“docker如何搭建redis主从哨兵集群”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“docker如何搭建redis主从哨兵集群”吧!1:获取redis镜像docker...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作