1、准备事项
1.1、完成主从库数据库安装
部署环境[例]:
- 主库:192.168.179.153:3306
- 从库:192.168.179.154:3306
1.2、配置文件检查
主从库开启GTID模式
// 主从库均修改,修改从库配置文件,在[mysqld]下添加如下配置
$ vim /etc/my.cnf
gtid_mode = on
enforce_gtid_consistency = on
1.3、主从库server-id配置
需检查server-id配置,为主从架构中的所有MySQL实例都分别指定一个独特的互不相同的server-id
主从server-id必须不同。
2、主从搭建
2.1、创建主从复制用户
// 主库执行
$ mysql -uroot -p
SQL> create user repl@'%' identified with 'mysql_native_password' by 'repl@123';
SQL> grant replication slave on *.* to 'repl'@'%';
SQL> exit;
2.2、备份主库数据
// 主库执行,创建备份文件目录
$ mkdir /data/backup
$ cd /data/backup
## 在主库上全库备份,不带gtid
$ /usr/local/mysql/bin/mysqldump -uroot -p -S /data/mysql/mysql3306/tmp/mysql.sock --set-gtid-purged=OFF --all-databases --single-transaction --master-data=2 --triggers --routines --events >Fulldb.sql
备份完成后,将备份文件scp至备库。
2.3、恢复从库数据
// 从库执行
$ mysql -uroot -p
SQL> reset master;
SQL> exit;
$ time mysql -uroot -p -S /data/mysql/mysql3306/tmp/mysql.sock < Fulldb.sql
恢复过程无报错即可。
2.4、从库开启同步
// 从库执行
$ mysql -uroot -p
SQL> change master to master_host='192.168.179.153',master_port=3306,master_user='repl',master_password='repl@123',master_auto_position=1;
Query OK, 0 rows affected, 8 warnings (7.38 sec)SQL> start slave;
2.5、从库设置只读
SQL> set global super_read_only=1;
SQL> set global read_only=1;
##需同步修改参数文件,避免MySQL重启后参数失效。在配置[mysqld]下添加如下配置$ vim /etc/my.cnf
read_only = 1
super_read_only=1
##此配置限制管理员操作备库,看情况设置。备库数据恢复完在设置 ,否则无权限导入
修改完配置文件,需重启主从数据库。
2.6、检查主从同步状态
// 从库执行
$ mysql -uroot -p
SQL> show slave status\G
需满足以下几点:
- Slave_IO_Running、Slave_SQL_Running 均 为 " YES "
- Retrieved_Gtid_Set(从库接收到主库GTID事务) == Executed_Gtid_Set(从库当前执行到的GTID事务)