1.实施前提
主库需要开启binlog(value为on即为开启)
show variables like 'log_bin';
主库需要开启gtid模式(value为on即为开启)
show variables like 'gtid_mode';
从库需要安装好与主库版本一致
2.主从实施
2.1主库上创建复制用户
GRANT REPLICATION SLAVE ON *.* to 'repl'@'192.168.53.%' IDENTIFIED BY 'repl';
2.2对主库进行备份
mysqldump -uroot -p123123 --single-transaction --master-data=2 --A --triggers --routines --events | gzip > fulldb_backup.sql.gz
- 使用
mysqldump
进行全库备份,包含触发器、存储过程、函数和事件。 --single-transaction
保证数据一致性。--master-data=2
包含主从复制信息。
2.3恢复从库数据
gzip -d fulldb_backup.sql.gz
mysql -uroot -p < fulldb_backup.sql
2.4建立主从复制关系
通过less等工具查看备份文件头部fulldb_backup.sql
找到一行如下:
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000021', MASTER_LOG_POS=844124729;
将在备份文件中找到的MASTER_LOG_FILE,MASTER_LOG_POS写入命令中,登录到从库执行
CHANGE MASTER TO MASTER_HOST='192.168.53.199',MASTER_PORT=3306,MASTER_USER='repl',MASTER_PASSWORD='repl',MASTER_LOG_FILE='mysql-bin.000021',MASTER_LOG_POS=844124729;
3.启动slave进程,状态验证
登录从库
start slave;
show slave status\G;