复制信息表在从库复制主库的数据期间,用于保存从主库转发到从库的 binlog(二进制日志)事件,记录有关 relay log(中继日志)当前状态和位置的 信息。

master.info 文件或者 mysql.slave_master_info 表

用于保存从库的 I/O 线程 连接主库的连接状态、账号、IP 地址、端口、密码,以及 I/O 线程当前读取主库 binlog 的文件和位置信息(称为 I/O 线程信息日志)。在默认情况下,I/O 线程的 连接信息和状态保存在 master.info 文件中(默认位置在 datadir 下,可以使用 master_info_file 参数指定 master.info 文件路径。注:在 MySQL 5.7.x 较新的版本 以及 8.0.x 版本中该参数已经被移除)。如果需要保存在 mysql.slave_master_info 表中,则需要在服务器启动之前设置 master_info_repository=TABLE。

relay_log.info 文件或者 mysql.slave_relay_log_info 表

当从库的 I/O 线程 从主库获取到最新的 binlog 事件信息后会先写入从库本地的 relay log 中,然后 SQL 线程再去读取 relay log 解析并重放。relay_log.info 文件或者 mysql.slave_relay_log_info 表就是用于记录最新的 relay log 的文件和位置,以及SQL 线程当前重放的事件对应的主库 binlog 的文件和位置信息的(SQL 线程位置 被称为 SQL 线程信息日志)。在默认情况下,relay log 的位置信息和 SQL 线程的 位置信息保存在 relay-log.info 文件中(默认位置在 datadir 下,可以使用 relay_log_info_file 选项指定 relay-log.info 文件路径)。如果需要保存在 mysql.slave_relay_log_info 表中,则需要在服务器启动之前设置 relay_log_info_repository=TABLE。