mysql主从复制设置(续)

前言

  之前有写过mysql主从复制,使用那个方法必须在一开始使用,那可不可以在线上数据库不停机的情况下增加从库呢?今天就来说说怎么在线上不停机的情况下增加从库。

配置

  参考前文mysql配置修改和创建同步账号

  接下来是重点

  在前文中备份数据库的时候我们使用以下命令进行备份

1
mysqldump -u数据库账号 -p数据库密码 数据库名 --skip-lock-tables --single-transaction --flush-logs --hex-blob --master-data=2 > 导出的sql文件名字.sql

其中参数意义如下:

  –skip-lock-tables 不锁表

  –single-transaction 设置事务的隔离级别为REPEATABLE READ,保证数据一致性 仅对InnoDB表有效 该参数与–lock-tables互斥

  –flush-logs 刷新日志

  –hex-blob 使用十六进制格式导出二进制字符串字段。如果有二进制数据就必须使用该选项。影响到的字段类型有BINARY、VARBINARY、BLOB

  –master-data 该选项将binlog的位置和文件名追加到输出文件中。如果为1,将会输出CHANGE MASTER 命令;如果为2,输出的CHANGE MASTER命令前添加注释信息

  然后把导出的sql文件拿到从库还原。

  还原后使用命令查看master_log_file和master_log_pos

1
head 导出的sql文件名字.sql -n80 | grep "MASTER_LOG_POS"

  最后执行同步命令开启同步即可

总结

  跟上一篇没多大差别,就是数据库备份采用命令备份,查看主库状态变成查看备份的数据库文件状态,其他一样。

坚持原创技术分享,您的支持将鼓励我继续创作!