修复mysql复制

由于relay-bin文件,我们在slave上的磁盘空间不足,所以我停止了mysql服务器,删除了relay-bin文件。 改变my.cnf文件指向中继日志到另一个位置。 在从属状态,我注意到了'Relay_Master_Log_File'和'Exec_Master_Log_Position'。 我用他们来“改变主”。 它不起作用。 我得到的提示,它说无法打开在旧位置的接力logging。 Mysql如何依旧查看旧文件,以及如何更改它?

谢谢。

你最初应该通过发出RESET SLAVE删除日志。

不过,如果你:

  • 对奴隶数据的一致性感到满意。
  • 你有一个Exec_Master_Log_Position的logging和相应的日志文件名。
  • 主人仍然有对应这个日志位置和文件名的日志。

发出STOP SLAVERESET SLAVE 。 这将删除从站的所有复制相关的信息,包括relay-log.info ,这很可能导致你看到的错误。

使用CHANGE MASTER ..来重新configuration从站的日志位置,主机,用户名等

然后用START SLAVE踢起来。

为了让它立即工作,你最好的select可能是:mysqldump –master-data –databases db_name> snapshot20091124.sql并将其转移到你的复制从服务器上。 你可以通过在mysql转储的前几行进行分页来仔细检查日志的位置。 发出“停止奴隶” ,执行导入“mysql -u root -p <snapshot20091124.sql”,然后发出“启动从站”。 复制是一个有时是不必要的复杂的野兽。

尝试重新启动您的从服务器清除caching。