0、网络策略开通 不需要做
1、主库配置
1.1 锁定主库写操作
flush tables with read lock;
1.2 备份主数据库,用于导入从数据库实现同步在这里插入代码片
mysqldump -R -uroot -p <yourMysqlPassword> --host=127.0.0.1 --port=3306 --all-databases > /tmp/mysqlMasterBackupAllDatabases.sql
或者navicat 导出
2、从库配置
2.1 使用主库备份文件恢复从库
source /mysqlMasterBackupAllDatabases.sql;
或者navicat 导入
3、创建主从集群
3.1 主库配置
vi /etc/my.cnf 添加2行
server-id=1
log-bin=/var/lib/mysql/mysql-bin
重启主库
systemctl restart mysqld.service
查看主库主从状态,记录file和position
show master status;
文件名 File
Position binlog点位
3.2 从库配置
vi /etc/my.cnf 添加一行
server-id=2
重启从库
systemctl restart mysqld.service
停止从库同步
stop slave
重置从库同步 作用是清除以前存在的:从库同步主库的历史记录,作用是把从库重置成:从没有同步过主库的状态
reset slave
设置要同步的主库参数
change master to master_host='x.x.x.x',master_port=3306,master_user='root',master_password='yourMysqlPassWord', master_log_file='mysql-bin.000007',master_log_pos=822090;
其中 master_host master_port master_user master_password 是主库的host、port、账号、密码
master_log_file 是主库binlog文件地址, master_log_pos 是log的postion, 是3.1步骤看到的主库信息
开始同步
start slave
查看从库同步状态
show slave status
Seconds_Behind_Master: 0
0表示从库没有落后于主库,主库数据都同步到从库了,Seconds_Behind_Master的期望值是0。
Seconds_Behind_Master如果是正值,说明从库落后于主库,还没有同步完成,或者同步失败,为正直时需要注意排查确认同步状态。
4、 恢复主库写操作
unlock tables;