Mysql主从配置(Docker)

本文详细介绍了如何在Docker环境下配置MySQL主从复制。首先进行环境准备,包括安装MySQL、创建目录和准备配置文件。接着启动MySQL master、slave1和slave2容器,并检查它们的状态。在主从配置阶段,主要步骤包括修改配置文件,如在主节点开启log-bin日志,在从节点设置为只读,然后验证主从同步效果。
摘要由CSDN通过智能技术生成

接上一篇:Mysql安装(Docker)

目录

环境准备

1. 按上一篇安装mysql

2.  创建目录

3. 准备配置文件

启动Mysql服务

1. 启动mysql master slave1 slave2容器

2. 检查各mysql是否启动(以master为例)

mysql 主从配置

1. 修改主从配置文件(主开启log-bin日志,从开启只读)

2. 重启master容器,并查看log_bin是否开启、添加backup用户

3. 重启slave,并添加master相关配置

4. 登录master 查看master、slave状态

5. 验证主从同步


环境准备

1. 按上一篇安装mysql

2.  创建目录

#创建以下目录(文件目录与my.cnf中配置项对应)
/usr/local/mysql/master    #mysql master
                   |--conf    
                   |--data    
                   |--log    
/usr/local/mysql/slave1    #mysql slave
                   |--conf
                   |--data
                   |--log
/usr/local/mysql/slave2
                   |--conf
                   |--data
                   |--log                   

cd /usr/local/mysql/

# 使docker容器有写入权限
chown -R polkitd:input *      

3. 准备配置文件

#主
[root@localhost mysql]# more master/conf/my.cnf 
[client]
socket=/apps/mysql/mysql.sock
[mysql]
default-character-set=utf8
[mysqld]
port=3306
basedir=/apps/mysql
datadir=/apps/mysql/data
log-error=/apps/mysql/log/error.log
socket=/apps/mysql/mysql.sock
pid-file=/apps/mysql/mysql.pid

character_set_server=utf8mb4
interactive_timeout = 120

wait_timeout = 120
max_allowed_packet = 32M

server_id=1

========================================================
#从
[root@localhost mysql]# more slave1/conf/my.cnf 
[client]
socket=/apps/mysql/mysql.sock
[mysql]
default-character-set=utf8
[mysqld]
port=3306
basedir=/apps/mysql
datadir=/apps/mysql/data
log-error=/apps/mysql/log/error.log
socket=/apps/mysql/mysql.sock
pid-file=/apps/mysql/mysql.pid

character_set_server=utf8mb4
interactive_timeout = 120

wait_timeout = 120
max_allowed_packet = 32M

server_id=2

========================================================

[root@localhost mysql]# more slave2/conf/my.cnf 
[client]
socket=/apps/mysql/mysql.sock
[mysql]
default-character-set=utf8
[mysqld]
port=3306
basedir=/apps/mysql
datadir=/apps/mysql/data
log-error=/apps/mysql/log/error.log
socket=/apps/mysql/mysql.sock
pid-file=/apps/mysql/mysql.pid

character_set_server=utf8mb4
interactive_timeout = 120

wait_timeout = 120
max_allowed_packet = 32M

server_id=3

启动Mysql服务

1. 启动mysql master slave1 slave2容器

#  -e TZ指定时区 -p 映射端口 -v 挂载本地目录 -d 后台运行
#master
[root@localhost master]# docker run --name mysql_master -e TZ="Asia/Shanghai" -p 3301:3306 -v /usr/local/mysql/master/conf/my.cnf:/etc/mysql/my.cnf -v /usr/local/mysql/master/:/apps/mysql --privileged=true -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.21

#slave1
[root@localhost master]# docker run --name mysql_slave1 -e TZ="Asia/Shanghai" -p 3302:3306 -v /usr/local/mysql/slave1/conf/my.cnf:/etc/mysql/my.cnf -v /usr/local/mysql/slave1/:/apps/mysql --privileged=true -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.21

#slave2
[root@localhost master]# docker run --name mysql_slave2 -e TZ="Asia/Shangh
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值