更改主服务器的主机名/IP 时更新 MySQL 从服务器

xre*_*ref 4 mysql replication

我有一台主机和一台从机复制得很好,但主机即将更改其主机名和 IP。在master.info从服务器上,我看到主服务器的当前主机名,如果我关闭从服务器,更改该文件中的主机名,然后重新启动 MySQL,这就是我所需要的吗?没有用户名/密码等正在改变。

如果我使用 CHANGE MASTER 查询,它看起来需要重新设置 binlog 位置等?

Rol*_*DBA 6

一旦你改变了MASTER_HOST,其他一切都需要随之改变。

您刚刚建议的“黑暗小巷”方法正是该做的。

Warning: Some systems use "mysqld" versus "mysql". 
The --skip-slave-restart "option" may not available without editing your
/etc/init.d/mysqld script to include this as a new option. 
If used, it will still start the slave upon startup.</p>
Run Code Online (Sandbox Code Playgroud)

在 Slave 上,运行以下四行:

cd /var/lib/mysql  
service mysql stop  
cp master.info master.info.bak
wc -l < master.info
Run Code Online (Sandbox Code Playgroud)

最后一行回显中的行数 master.info

接下来,vi master.info更改 IP 地址。

接下来,运行wc -l < master.info并确保行数仍然相同

接下来启动mysql,不启动复制

service mysql start --skip-slave-start
Run Code Online (Sandbox Code Playgroud)

登录 MySQL,然后运行

SHOW SLAVE STATUS\G
Run Code Online (Sandbox Code Playgroud)

如果出现您添加的 IP 地址,则运行

START SLAVE; SELECT SLEEP(5);
SHOW SLAVE STATUS\G
Run Code Online (Sandbox Code Playgroud)

如果你看到Slave_IO_Running : YesSlave_SQL_Running : Yes,恭喜!!!

试一试 !!!

  • 嘿,我正在读这个 http://linuxsysadminblog.com/2008/07/changed-the-mysql-replication-master-host/ 为什么不这样做呢?`STOP SLAVE;` `SHOW SLAVE STATUS;``Master_Log_File: mysql-bin.000101` `Read_Master_Log_Pos: 591523680` `CHANGE MASTER TO MASTER_HOST='NEW IP ADDRESS', MASTER_LOG_FILE='mysql-bin.000101000010 ; 开始奴隶;` (2认同)