阿里云docker搭建MySQL主从数据库

阿里云docker搭建MySQL主从数据库

1.拉取MySQL镜像,博主搭建版本为MySQL5.7

docker pull mysql:5.7

效果:
在这里插入图片描述

2.设置MySQL配置目录

#新建数据目录
mkdir -pv /mysql/data
#新建主库配置目录
mkdir -pv /mysql/001
#新疆从库配置目录
mkdir -pv /mysql/002

3.新建配置文件

#设置主库配置
vi /mysql/001/001.cnf
#将下列内容写入文件中
[mysqld]
log-bin=mysql-bin
server-id=001

#设置从库配置
vi /mysql/002/002.cnf
#将下列内容写入文件中
[mysqld]
log-bin=mysql-bin
server-id=002

4.创建容器

#主库
docker create --name mysqlsrv001 -v /mysql/data/mysql001:/var/lib/mysql -v /mysql/001:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 mysql:5.7
#从库
docker create --name mysqlsrv002 -v /mysql/data/mysql002:/var/lib/mysql -v /mysql/002:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -p 3307:3306 mysql:5.7

效果如下:
在这里插入图片描述

5.启动容器

#主
docker start <容器ID>
#从
docker start <容器ID>

6.进入主库容器中,查看master状态,并创建从库用户

#进入容器中
docker exec -it <容器ID> bash
#进入mysql
mysql -u root -p
查看mysql mater状态
show master status; 

在这里插入图片描述

创建从库用户
#用户名为:backup,密码为:123456
SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
GRANT REPLICATION SLAVE ON *.* to 'backup'@'%' identified by '123456';

7.进入从库容器中,步骤参考第六步

设置从服务器配置
SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
change master to master_host='***.**.***.***',master_user='backup',master_password='123456',master_log_file='mysql-bin.000003',master_log_pos=2500;

#master_host为主库IP,博主设置为阿里云内网ip,经测试可用
#master_user为主库配置的用户名
#master_password为主库配置的密码
#master_log_file为指定 Slave 从哪个日志文件开始复制数据,即主库查询到的 File 字段的值
#master_log_pos为哪个 Position 开始读,即上文中提到的 Position 字段的值
启动slave服务
start slave;
查看slave状态
show slave status\G

在这里插入图片描述

8.常见问题

使用start slave开启主从复制过程后,如果SlaveIORunning一直是Connecting,则说明主从复制一直处于连接状态,这种情况一般是下面几种原因造成的,我们可以根据 Last_IO_Error提示予以排除。

  • 网络不通
    检查ip,端口是否正确;博主采用的是在从库容器上使用mysql命令测试能否联通主库
  • 密码不对
    检查是否创建用于同步的用户和用户密码是否正确
  • pos不对
    检查Master的 Position,更改为一样的

9.总结

此文是博主在阿里云服务上使用docker搭建主备MySQL数据库的过程,希望对大家有所帮助,如有错误请在评论中指出,不胜感激;

参考

MySQL主从同步异常问题解决Client requested master to start replication from position > file size
docker运行mysql主从备份,读写分离

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值