配置 FHC 数据库为主从
配置 FHC 数据库为主从
准备
- docker mysql8.0 * 2
将现有的 mysql 作为主库,在之前新购入的机器上面安装 docker mysql 作为从库。
开始
进入主库机器写一个配置
vim mysql-master.cnf [mysqld] server_id=1 binlog_format=ROW gtid_mode=ON enforce-gtid-consistency=true
将配置文件放入 docker mysql 容器中
docker cp mysql-master.cnf mysql8.0:/etc/mysql/conf.d
重启 docker mysql
docker restart mysql8.0
进入 mysql,配置从库可访问账号
docker exec -it master-mysql bash # in docker mysql -u root -p # in mysql create user 'slave' identified with mysql_native_password by 'your pwd'; GRANT REPLICATION SLAVE ON *.* TO 'slave'; flush privileges; show master status\G; *************************** 1. row *************************** File: binlog.000024 Position: 2670 Binlog_Do_DB: Binlog_Ignore_DB: Executed_Gtid_Set: 1 row in set (0.00 sec) ERROR: No query specified
由于主数据库中本来就有数据,需要先把数据同步到从数据库中保持数据一致。
- 首先最将主数据库锁库
mysqldump -u root > all_dbs.sql
- 将 sql 文件复制到从数据库
- 在从数据库恢复数据,进入 mysql
source /tmp/all_dbs.sql
恢复完数据后,进入从库服务器, 写一个 slave.cnf 并复制到 docker mysql 中
[mysqld] server-id=2
在从库配置 master 信息
CHANGE MASTER TO MASTER_HOST='your master mysql ip', MASTER_USER='username', MASTER_PASSWORD='password', MASTER_LOG_FILE='inlog.000024', Master_Port=3306, # 注意 Master_Port 为数字 MASTER_LOG_POS=155; # 注意 position 为数字
- 执行从库配置
start slave;
- 查看状态
show slave status\G;
- 在主库中添加数据,然后在从中查询,发现数据会同步过来,主从配置成功
本文参考
- Docker部署MySQL 8.0主从
- 封图摄于 CP28
作者:hayato
文章版权:本站所有文章版权依赖于 CC BY-NC-SA 3.0 Unported License
本文链接:https://blog.axis-studio.org/2021/07/03/配置-FHC-数据库为主从/