Docker搭建MySQL主从同步:配置与实战

需积分: 42 2 下载量 5 浏览量 更新于2024-08-05 收藏 4KB TXT 举报
本文档详细介绍了如何利用Docker搭建并配置两个MySQL数据库实现主从数据同步。首先,通过以下步骤来构建两个MySQL容器: 1. **启动主库容器**: - 使用`docker run`命令创建名为`mysql-master`的容器,指定端口映射(3301主机端口映射到容器内的3306端口),设置MySQL root用户的密码为`123456`,使用官方镜像`mysql:5.7.32`。 2. **启动从库容器**: - 类似地,创建一个名为`mysql-slave`的容器,将3302主机端口映射到容器内的3306端口,同样设置root用户密码为`123456`。 3. **配置主库MySQL**: - 进入`mysql-master`容器,首先更新软件包列表,然后安装vim文本编辑器。接着,修改`mysqld.cnf`文件,确保`character_set_server`设置为`utf8`,设置`server-id`为100以标识为主服务器,并开启二进制日志(`log-bin`和`binlog_format`)。配置特定数据库的同步(`binlog-do-db`)和字符集设置。 4. **配置主库服务**: - 重启`mysql`服务并验证配置,执行`service mysql restart`。然后重启Docker容器`docker start mysql-master`。 5. **创建主库用户**: - 在主库上创建一个名为`slave`的用户,赋予`REPLICATION_SLAVE`和`REPLICATION_CLIENT`权限,以便从库能够同步数据。 6. **进入从库容器**: - 对于`mysql-slave`容器,也进行类似操作,包括软件包更新、vim安装,以及编辑`mysqld.cnf`文件。 7. **配置从库MySQL**: - 修改`mysqld.cnf`文件中的相关设置,确保`character_set_server`和`server-id`与主库一致,同时设置正确的二进制日志路径和格式。可能还需要配置`binlog-do-db`来指定从哪个主库数据库同步。 8. **启动从库服务**: - 重启`mysql`服务和Docker容器,确保从库已准备好接收数据同步。 通过以上步骤,两个MySQL数据库已经成功配置为主从模式,数据能够在主库写入后自动同步到从库,从而实现高可用性和容错性。这是一项常见的数据库管理实践,适用于需要分布式部署或者读写分离场景的项目。