技术文摘
MySQL 5.7基于Docker搭建主从复制架构教程
MySQL 5.7基于Docker搭建主从复制架构教程
在当今的数据库应用场景中,主从复制架构能够有效提升数据的可用性、读写性能以及数据安全性。本文将详细介绍如何基于Docker搭建MySQL 5.7主从复制架构。
确保已经安装了Docker环境。若没有安装,需按照官方文档进行安装配置。
接着,拉取MySQL 5.7镜像。在命令行中输入:docker pull mysql:5.7 ,等待镜像拉取完成。
创建主服务器容器。使用如下命令:
docker run -p 3306:3306 --name mysql-master \
-e MYSQL_ROOT_PASSWORD=root \
-e MYSQL_DATABASE=test \
-e MYSQL_USER=test \
-e MYSQL_PASSWORD=test \
-d mysql:5.7
这里将容器的3306端口映射到宿主机的3306端口,设置了root密码、数据库、用户名和密码等信息。
进入主服务器容器,修改主服务器配置。进入容器:docker exec -it mysql-master bash 。然后编辑MySQL配置文件,在 [mysqld] 下添加如下配置:
log-bin=mysql-bin
server-id=1
重启MySQL服务:service mysql restart 。
创建用于主从复制的用户并授权。进入MySQL客户端:mysql -uroot -proot ,执行如下命令:
CREATE USER'slave'@'%' IDENTIFIED BY'slave';
GRANT REPLICATION SLAVE ON *.* TO'slave'@'%' IDENTIFIED BY'slave';
FLUSH PRIVILEGES;
查询主服务器状态:SHOW MASTER STATUS; ,记录File和Position的值。
接下来创建从服务器容器,使用类似主服务器的命令创建,注意修改端口映射和容器名,如:
docker run -p 3307:3306 --name mysql-slave \
-e MYSQL_ROOT_PASSWORD=root \
-e MYSQL_DATABASE=test \
-e MYSQL_USER=test \
-e MYSQL_PASSWORD=test \
-d mysql:5.7
进入从服务器容器,修改配置文件,在 [mysqld] 下添加:
server-id=2
重启MySQL服务。
配置从服务器,进入MySQL客户端,执行如下命令:
CHANGE MASTER TO
MASTER_HOST='宿主机IP',
MASTER_USER='slave',
MASTER_PASSWORD='slave',
MASTER_LOG_FILE='主服务器记录的File值',
MASTER_LOG_POS=主服务器记录的Position值;
启动从服务器复制:START SLAVE; ,查看从服务器状态:SHOW SLAVE STATUS \G ,确保 Slave_IO_Running 和 Slave_SQL_Running 都为 Yes 。
至此,MySQL 5.7基于Docker的主从复制架构搭建完成,你可以放心地享受该架构带来的便利与优势。
- MySQL LIKE 匹配出现意外结果的原因
- Python3处理数据库报错处理中 如何解决
- 数据访问层独立成 RPC:可行性探讨与应用场景解析
- MySQL维护更新速度为何比PostgreSQL慢
- MySQL 8 版本是否值得使用
- MySQL数据库操作 ER_BAD_DB_ERROR 错误:解决未知数据库问题的方法
- Docker安装MySQL后本地无法连接的原因
- SegmentFault 用户表设计方案探讨
- 使用 GORm 遇到未知列异常的解决方法
- 怎样查看MySQL里每个索引的磁盘空间占用大小
- Docker安装MySQL后本地无法连接的原因
- MySQL MVCC 中 update 后 select 仍能读到数据的原因
- GORM操作数据库报错Unknown column 'created_at' in 'field list' 如何解决
- MySQL设置默认值,何时需加引号
- MySQL 中 SQL 语句执行:单线程还是多线程