docker部署Mysql的主从

#拉取镜像

docker pull percona:5.7.23

搭建主库

#创建目录

mkdir -p /data/mysql/master01
cd /data/mysql/master01 
mkdir conf data 
chmod 777 * -R

#创建配置文件

cd /data/mysql/master01/conf 
vim my.cnf

#输入如下内容

[mysqld] 
log-bin=mysql-bin  #开启二进制日志 
server-id=1  #服务id,不可重复
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO ,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'  #避免创建同步账户以及授权时报错
binlog_format=MIXED #指定复制模式为混合模式

#创建容器

docker create --name percona-master01 -v /data/mysql/master01/data:/var/lib/mysql -v /data/mysql/master01/conf:/etc/my.cnf.d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root percona:5.7.23

#启动

docker start percona-master01 && docker logs -f percona-master01

#创建同步账户以及授权

create user 'itcast'@'%' identified by 'itcast'; 
grant replication slave on *.* to 'itcast'@'%'; 
flush privileges;

#出现 [Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and错误解 决方案,在my.cnf配置文件中设置 sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO ,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
#查看master状态【记录sql文件的名字和位置,在从机同步时用到】

show master status;

#查看二进制日志相关的配置项

show global variables like 'binlog%';

#查看server相关的配置项

show global variables like 'server%';

搭建从库
#创建目录

mkdir -p /data/mysql/slave01 
cd /data/mysql/slave01 
mkdir conf data 
chmod 777 * -R

#创建配置文件

cd /data/mysql/slave01/conf 
vim my.cnf

#输入如下内容

[mysqld] 
server-id=2
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO ,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

#创建容器

docker create --name percona-slave01 -v /data/mysql/slave01/data:/var/lib/mysql -v /data/mysql/slave01/conf:/etc/my.cnf.d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root percona:5.7.23

#启动

docker start percona-slave01 && docker logs -f percona-slave01

#设置master相关信息,在从库里面执行。master的相关信息通上面的命令来设置

CHANGE MASTER TO master_host='192.168.88.101', master_user='itcast', master_password='itcast', master_port=3306, master_log_file='mysql-bin.000003', master_log_pos=743;

#启动同步

start slave;

#查看master状态

show slave status;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值