更改mysql复制中master的主机IP

srv*_*vnk 3 mysql replication master-slave-replication

我有一主一奴。假设master的IP改变了,但物理服务器是相同的。现在我想在从服务器上更新(主服务器的)新IP。在从服务器上master_info_repository设置为TABLE。我想从由于 IP 更改而暂停的位置恢复复制过程。这个怎么做?从服务器的 mysql 版本是:14.14 Distrib 5.7.30操作系统是ubuntu 18.04.

srv*_*vnk 6

经过长时间的互联网冲浪,我得到了一个东西。MASTER_LOG_FILEwill takeRelay_Master_Log_FileMASTER_LOG_POSwill takeExec_Master_Log_Pos作为它们各自在CHANGE MASTER TO声明中的值。在mysql 文档的 Exec_Master_Log_Pos 部分中有明确说明。我发现另一篇文章也说了同样的事情:

\n
\n

当您\xe2\x80\x99 使用 CHANGE MASTER TO 设置从属设备的起始位置时\n您\xe2\x80\x99 正在指定 SQL 线程的位置,因此您应该使用\nRelay_Master_Log_File:Exec_Master_Log_Pos。否则\xe2\x80\x99\n将会毁掉你的复制。

\n
\n
\n

它没有帮助 SHOW MASTER STATUS has Master_Log_File value and\nCHANGE MASTER TO 接受 Master_Log_File 参数,而您实际上\n想要使用 Relay_Master_Log_File 代替。这个命名是 MySQL 4.0 时代之前留下的,多年后仍然引起混乱。

\n
\n

结论 :

\n
    \n
  1. STOP SLAVE;
  2. \n
  3. SHOW SLAVE STATUS \\G
  4. \n
  5. 记下Relay_Master_Log_File值(示例:mysql-bin.000007)和Exec_Master_Log_Pos值(示例:775)
  6. \n
  7. CHANGE MASTER TO MASTER_HOST=\'<New IP of Master>\', MASTER_LOG_FILE=\'mysql-bin.000007\', MASTER_LOG_POS=775;
  8. \n
  9. START SLAVE;
  10. \n
\n