MySQL主从复制是一种常见的数据库架构,用于实现数据的备份、负载均衡和故障恢复等功能,本文将详细介绍如何在Docker环境下快速部署MySQL主从复制。
一、准备工作
在开始之前,需要确保已经安装了Docker,可以通过以下命令检查Docker是否已安装:
docker --version
如果没有安装,可以参考Docker官方文档进行安装。
二、拉取MySQL镜像
在两台机器(node1和node2)上分别拉取MySQL镜像:
docker pull mysql:8.0
三、启动容器并获取配置文件
1、启动MySQL容器,并将数据和配置目录挂载到本地:
node1作为主库 docker run -d --name mysql-master -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0 node2作为从库 docker run -d --name mysql-slave -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0
2、临时启动一下MySQL容器,把配置文件拷贝到本地:
node1上执行 docker cp mysql-master:/etc/my.cnf /opt/mysql/my.cnf node2上执行 docker cp mysql-slave:/etc/my.cnf /opt/mysql/my.cnf
四、配置主库
1、修改主库的配置文件my.cnf
:
[mysqld] server-id=1 log-bin=master_binlog binlog-format=STATEMENT
2、重启主库容器:
docker restart mysql-master
3、创建专门用于复制的账户:
CREATE USER 'backups'@'%' IDENTIFIED BY 'backups'; GRANT REPLICATION SLAVE ON *.* TO 'backups'@'%'; FLUSH PRIVILEGES;
4、获取二进制日志坐标:
SHOW MASTER STATUS;
记录下File和Position的值,稍后在从库配置时使用。
五、配置从库
1、修改从库的配置文件my.cnf
:
[mysqld] server-id=2 relay-log=relay-bin read-only=1 binlog-format=STATEMENT
2、重启从库容器:
docker restart mysql-slave
3、设置从库的同步源:
CHANGE MASTER TO MASTER_HOST='node1的IP地址', MASTER_USER='backups', MASTER_PASSWORD='backups', MASTER_LOG_FILE='记录的File值', MASTER_LOG_POS=记录的Position值;
4、启动从库复制:
START SLAVE;
5、验证从库状态:
SHOW SLAVE STATUSG;
如果Slave_IO_Running和Slave_SQL_Running都显示为Yes,则表示主从复制配置成功。
六、测试主从复制
在主库中创建一个数据库或表,并插入一些数据,然后在从库中查询,确认数据是否已同步。
-在主库中执行 CREATE DATABASE testdb; USE testdb; CREATE TABLE testtable (id INT, name VARCHAR(50)); INSERT INTO testtable (id, name) VALUES (1, 'test'); -在从库中执行 USE testdb; SELECT * FROM testtable;
如果从库中能够查询到相同的数据,说明主从复制已经成功。
七、FAQs
Q1: 如何更改MySQL主从复制中的从库?
A1: 如果需要更改从库,可以停止当前的从库复制进程,然后重新配置新的从库,具体步骤包括在新从库上设置同步源,并启动复制进程,需要在原从库上停止复制进程。
Q2: MySQL主从复制的原理是什么?
A2: MySQL主从复制的原理基于二进制日志(Binary Log)和复制线程(Replication Thread),主服务器将数据库的更新操作记录到二进制日志中,从服务器连接到主服务器并通过复制线程获取二进制日志的更新内容,然后在本地执行相同的操作,从而实现数据同步。
八、小编有话说
通过Docker部署MySQL主从复制可以大大简化配置过程,提高部署效率,在实际生产环境中,建议根据具体需求选择合适的复制模式,并进行充分的测试和监控,以确保系统的稳定性和可靠性,希望本文能对大家有所帮助!
最新评论
本站CDN与莫名CDN同款、亚太CDN、速度还不错,值得推荐。
感谢推荐我们公司产品、有什么活动会第一时间公布!
我在用这类站群服务器、还可以. 用很多年了。