Mysql 主从通过Docker快速部署手册

前言:

Mysql主从使用docker方式运行快捷方便,使用docker可以快速部署测试环境预生产环境的MySQL主从服务

以下是在两台云主机或者两台服务器运行搭建mysql主从服务。

主机1:172.16.12.120 MySQL主

主机2:172.16.12.121 MySQL从

一 Docker run mysql 主 

    1.1  Docker run 命令:

注:如果您熟练使用docker,直接使用下面命令修改下挂载路径就可以使用了。

docker run -it --name mysql_master --privileged -p 3306:3306 -v /etc/timezone:/etc/timezone:ro -v /etc/localtime:/etc/localtime:ro -v /data/mysql-data/conf/my.cnf:/etc/mysql/my.cnf -v /data/mysql-data/mysql-db:/var/lib/mysql -v /data/mysql-data/mysql-files/:/var/lib/mysql-files  -v /data/mysql-data/logs:/var/log -e MYSQL_ROOT_PASSWORD=Mysql#xian123 -d mysql:5.7.27

1.2 mysql 数据本地持久化目录创建:

    mkdir /data/mysql-data/{conf,mysql-db,logs,mysql-files} -p

    chmod 777 /data/mysql-data/logs

1.3 创建MySQL 主 配置文件 my.cnf

       vim my.cnf    # 粘贴下面内容

[mysqld]
datadir=/var/lib/mysql
socket=/var/run/mysqld/mysqld.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

lower_case_table_names=1
skip-host-cache

log_bin=mysql-bin
server_id=1
binlog_format=row
sync-binlog=1
#指定哪些库不同步,其他库默认都同步
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
binlog-ignore-db=mysql

1.4 运行1.1命令启动mysql 你也可以将1.1命令制作成启动脚本使用,例如:

   vim mysql_master_run.sh

#!/bin/bash

docker run -it --name mysql_master --privileged -p 3306:3306 -v /etc/timezone:/etc/timezone:ro -v /etc/localtime:/etc/localtime:ro -v /data/mysql-data/conf/my.cnf:/etc/mysql/my.cnf -v /data/mysql-data/mysql-db:/var/lib/mysql -v /data/mysql-data/mysql-files/:/var/lib/mysql-files  -v /data/mysql-data/logs:/var/log -e MYSQL_ROOT_PASSWORD=Mysql#xian123 -d mysql:5.7.27

保存后执行 sh mysql_master_run.sh

1.5 登录mysql 创建 MySQL 从同步账号信息

登录mysql_master容器:

docker exec -it mysql_master /bin/bash

mysql -uroot -p

输入密码:Mysql#xian123后 创建从库同步账号

注:下面IP信息修改为你当前网段信息

create user sale_rep@'172.16.12.%' identified by 'Rep#xian123';

grant replication slave on *.* to 'sale_rep'@'172.16.12%';

flush privileges;

查看master 服务状态,记录下当前bing-log 数值和pos偏移数值等会从服务使用

show master status;

quit;

exit 退出后 主库创建完成,下面创建mysql从

二  Docker run Mysql从库 

注:在另外单独一台机器上运行以下操作

2.1  Docker run 命令:

注:如果您熟练使用docker,直接使用下面命令修改下挂载路径就可以使用了。

先创建个运行脚本等会使用方便

vim mysql_slave_run.sh

#!/bin/bash
docker run -it --name mysql_slave01 --privileged -p 3306:3306 -v /etc/timezone:/etc/timezone:ro -v /etc/localtime:/etc/localtime:ro -v /data/mysql-data/conf/my.cnf:/etc/mysql/my.cnf -v /data/mysql-data/mysql-db:/var/lib/mysql -v /data/mysql-data/mysql-files/:/var/lib/mysql-files  -v /data/mysql-data/logs:/var/log -e MYSQL_ROOT_PASSWORD=sheqm#spang123 -d mysql:5.7.27

2.2  mysql 数据本地持久化目录创建:

    mkdir /data/mysql-data/{conf,mysql-db,logs,mysql-files} -p

    chmod 777 /data/mysql-data/logs

2.3 mysql slave  my.cnf 配置文件创建

    vim my.cnf    #粘贴以下内容

[mysqld]

datadir=/var/lib/mysql
socket=/var/run/mysqld/mysqld.sock
#socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
lower_case_table_names=1
skip-host-cache

log_bin=mysql-slave01-bin
#binlog_format=row 
#bashlog_bin=mysql-bin

server-id=2
#指定中继日志名字,不指定默认
relay_log =mysql-relay-bin
#指定只读
read_only =1

2.4 运行2.1创建的mysql_slave_run.sh 启动MySQL从服务

sh mysql_slave_run.sh

2.5 登录 mysql从服务

    docker exec -it mysql_slave01 /bin/bash

mysql -uroot -p

输入密码后

执行下面语句:

change master to master_host='172.16.12.120',master_port=3306,master_user='sale_rep',master_password='Rep#xian123',master_log_file='mysql-bin.000002',master_log_pos=1586;

start slave;  #启动slave

查看slave状态

show slave status \G

下面这两个状态为yes 主从设置成功

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

三  以上就是Docker 方式部署Mysql主从的完整过程,准备好机器可以复制粘贴上面命令一步步就可以完成MySQL主从部署,欢迎各位同仁及技术爱好者查阅,不到之处还望多多指正评论补充

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值