前言
MySQL 主从复制是 MySQL 数据库中的一项非常重要的功能,它可以将一个数据库的变更同步到多个其他的数据库中,以便在高负载场景下提高数据库的性能和可用性。
在本文中,我们将介绍如何使用 Docker Compose 来管理 MySQL 主从复制,从而更有效地管理和维护 MySQL 数据库,并为开发人员和运维人员提供更好的支持。
准备工作
在开始之前,需要安装 Docker 和 Docker Compose,并确保它们可用。如果您还没有安装它们,请参考官方文档进行安装和配置。
步骤一:创建 Docker Compose 文件
首先需要创建一个 Docker Compose 文件,用于定义 MySQL 主从复制的配置。以下是一个简单的示例文件:
// javascriptcn.com 代码示例 version: '3' services: master: image: mysql:5.7 command: --log-bin=mysql-bin --server-id=1 --binlog-do-db=test environment: MYSQL_ROOT_PASSWORD: test123 ports: - "3306:3306" volumes: - ./data/master:/var/lib/mysql slave: image: mysql:5.7 command: --log-bin=mysql-bin --server-id=2 --binlog-do-db=test --relay-log=mysql-relay-bin --slave-skip-errors=all --read_only=1 environment: MYSQL_ROOT_PASSWORD: test123 MYSQL_MASTER_HOST: master MYSQL_MASTER_PASSWORD: test123 MYSQL_MASTER_PORT: 3306 ports: - "3307:3306" volumes: - ./data/slave:/var/lib/mysql
此文件定义了两个 MySQL 容器,一个主节点和一个从节点。主节点与从节点共享一个标准测试数据库,并可以在容器外部通过端口 3306 和 3307 进行访问。此外,还有一些其他配置,例如定义服务器 ID、指定 binlog 相关的一些参数等。
步骤二:启动容器
运行以下命令启动容器:
docker-compose up -d
如果一切顺利,您应该可以在 Docker Compose 控制台中看到主从节点都已经启动了。
步骤三:配置主节点
现在,我们需要在主节点上创建一个数据库,并在其中添加一些数据。这里使用了官方提供的 MySQL 命令行客户端工具:
docker-compose exec master mysql -uroot -p'test123' -e 'create database test;' docker-compose exec master mysql -uroot -p'test123' -e "use test; create table messages (id int primary key auto_increment, message varchar(255));" docker-compose exec master mysql -uroot -p'test123' -e "use test; insert into messages (message) values ('hello, world!');"
步骤四:配置从节点
接下来,我们需要配置从节点,让它将主节点的变更同步过来。这里使用了官方提供的 MySQL 命令行客户端工具:
docker-compose exec slave mysql -uroot -p'test123' -e "show slave status\G"
如果一切正常,您应该可以看到 slave_IO_Running 和 slave_SQL_Running 均为 Yes。同时,也可以尝试在从节点上查看数据,应该可以看到和主节点上的数据是一致的。
总结
通过本文,您应该已经了解如何使用 Docker Compose 来管理 MySQL 主从复制,并掌握了基本的步骤和配置方法。同时,还可以参考官方文档中的进一步学习和指导。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6520cf9495b1f8cacd843384