由于中继 bin 文件,从服务器的磁盘空间不足,因此我停止了 mysql 服务器,删除了中继 bin 文件。更改了 my.cnf 文件以将中继日志指向另一个位置。在从服务器状态中,我注意到“Relay_Master_Log_File”和“Exec_Master_Log_Position”。我使用它们来“更改主服务器”。但它不起作用。我收到提示,提示说无法在旧位置打开中继日志。Mysql 为何仍在查看旧文件,我该如何更改它?
谢谢。
答案1
您应该首先通过发出以下命令删除日志RESET SLAVE
。
尽管如此,如果你:
- 对于迄今为止从属数据一致性感到满意。
- 您有一个记录
Exec_Master_Log_Position
和相应的日志文件名。 - 主服务器仍然具有与该日志位置和文件名相对应的日志。
发出STOP SLAVE
和RESET SLAVE
。这将从从属服务器中删除所有复制相关信息,包括relay-log.info
可能导致您看到的错误的信息。
用于CHANGE MASTER ..
重新配置从属设备的日志位置、主机、用户名等。
然后用 将其踢回去START SLAVE
。
答案2
要立即使其工作,最好的办法可能是:mysqldump --master-data --databases db_name > snapper20091124.sql 并将其复制到您的复制从属服务器。您可以通过翻阅 mysql 转储的前几行来仔细检查日志位置。发出“stop slave;”,执行导入“mysql -u root -p < snapper20091124.sql”,然后发出“start slave”。复制有时是一头不必要的复杂野兽。
答案3
尝试重新启动从属服务器以清除缓存。