前言
在实际的生产中当然不可能只有一主一从,因此在生产中,mysql数据库最基础的架构是一主多从,当然这个结构对数据并不是很安全。
mysql还有多主一从、多主多从等架构,前面实际上已经介绍了一主多从或者说是添加从库的操作,但是本篇还是专门提出来,详细介绍一下。
一主多从(添加从库)
具体操作请参考如下,实际上按照此步骤,接着做即可完成多从
https://blog.csdn.net/gx_1_11_real/article/details/81085326
如出现数据不同步问题,请参考下列链接:
https://blog.csdn.net/gx_1_11_real/article/details/80658527
- 新增从库的版本要与主库的版本相同
- 更改新从库的my.cnf的配置(每个server-id都是唯一的)
- 启动从库
- 主库创建用于同步的用户账号及密码
grant replication slave on . to ‘repl’@’从库的IP’ identified by ‘密码’;
- 先进入主库,进行锁表,此处锁定为只读状态,防止数据写入 (可选,因如有数据库备份,可直接利用备份)
flush tables with read lock;
mysqldump -uroot -p‘….’ -hlocalhost > mysql.back.sql
rsync -aP mysql.back.sql 从库IP:/root/ (位置任意)
- 从库导入数据
mysql -uroot -p… -f < mysql.back.sql
主库解锁
unlock tables;
从库停止slave服务,连接主库
stop slave;
change master to master_host = ‘主库的IP’, master_user = ‘设置主从时设定的主库的用户’, master_port=主库的端口, master_password=’主库设定的密码’, master_log_file = ‘主库状态的File’, master_log_pos=主库状态的Position;
- 开启从库
start slave;
- 查看从库状态
show slave status \G;
注意:如下即为成功,如其中任意一个不为Yes即为失败。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes