Gra*_*ray 12 mysql replication mysql-5.5
我有一个 master -> slave 配置,其中 master 失败了。我已经能够将旧奴隶重置为主人,并将旧主人重置为奴隶。美好的。
我似乎无法做的是删除旧从机上的主信息,现在是新主。我懂了:
mysql> show slave status \G
*************************** 1. row ***************************
Slave_IO_State:
Master_Host: 10.1.2.101
Master_User: replicationSlave
Master_Port: 3306
...
Slave_IO_Running: No
Slave_SQL_Running: No
Run Code Online (Sandbox Code Playgroud)
我已经阅读了很多MySQL 文档,但我仍然没有找到一种方法来清除 new-master 中的 slave 信息。我试过了:
RESET SLAVE这似乎没有清除这些设置。[[实际上它确实删除了master.info文件,但没有删除内存设置。见下文。]]CHANGE MASTER TO MASTER_HOST='' 由于它最近被弃用,它只是吐出一个错误。my.cnf哪些没有主信息,因为它们是以编程方式添加的。RESET MASTER因为一些 mysql 文档推荐了它。那只会重置 bin 日志。在 MySQL ~5.5.9 上执行此操作的正确方法是什么?谢谢你的帮助。
编辑:
所以事实证明,正如@RolandoMySQLDBA 暗示的那样,RESET SLAVE删除了该master.info文件。但是,在删除从站信息之前,您仍然需要重新启动服务器。
有什么办法不用重启mysqld就可以去掉这个slave信息吗?
从 MySQL 实例中清除从属信息的最快和最脏的方法
skip-slave-start到/etc/my.cnf下[mysqld]service mysql stoprm -f /var/lib/mysql/master.info /var/lib/mysql/relay-*service mysql startskip-slave-start从 /etc/my.cnf 中删除那应该为你做!
这是必要的,因为根据MySQL 文档RESET SLAVE:
在 MySQL 5.5 中(与 MySQL 5.1 及更早版本的情况不同),RESET SLAVE 不会更改任何保留在内存中的复制连接参数,例如 master 主机、master 端口、master 用户或 master 密码。这意味着无需在 RESET SLAVE 之后执行 CHANGE MASTER TO 语句即可发出 START SLAVE。
因此,复制信息仍在内存中。mysql 重启是唯一的方法。
| 归档时间: |
|
| 查看次数: |
40932 次 |
| 最近记录: |