MySQL Error number: 3083; Symbol: ER_SLAVE_CHANNEL_WAS_RUNNING; SQLSTATE: HY000 报错 故障修复 远程处理
文档解释
Error number: 3083; Symbol: ER_SLAVE_CHANNEL_WAS_RUNNING; SQLSTATE: HY000
Message: Replication thread(s) for channel ‘%s’ are already runnning.
Error number: 3083; Symbol: ER_SLAVE_CHANNEL_WAS_RUNNING; SQLSTATE: HY000
错误说明:
Error 3083: ER_SLAVE_CHANNEL_WAS_RUNNING错误指的是在MySQL服务器上运行的Slave I/O线程已定义了一个名为给出的Slave Channel。Slave I/O线程在没有正确停止的情况下已被定义。
尝试执行某些任务时触发此错误,比如将从服务器添加到复制树,使一个从服务器定义一个新的从通道,或停止复制树中的从通道,停止已激活的从线程,变更从树的复制规则,变更从树中的从服务器,及其他更改从树的基本结构。
常见案例
常见的3083: ER_SLAVE_CHANNEL_WAS_RUNNING错误可能会出现在以下情况:
1. 当想要将从服务器添加到复制树,而此时此从服务器上的从I/O线程已被定义,此时会产生此错误。
2. 如果想要定义一个新从通道,但是从际已被定义,此时就会产生此错误。
3. 如果某个正激活的从程序想要停止,但是从I/O线程的状态不是关闭状态,此时则会产生此错误。
4. 在复制树中变更复制规则、或者从树中的从服务器或者变更从树的基本结构时,如果此时从I/O 线程的状态不是关闭的,那么此时则会产生此错误。
解决方法:
1. 必须确保正在运行的从I/O线程正确关闭,才能正确修改复制树和从通道。可以使用STOP SLAVE IO_THREAD来停止从线程,然后就可以在复制树中修改通道了。
2. 如果想要修改从服务器,或者在复制树中变更复制规则,那么必须先停止从I/O线程,然后再重新启动,才能修改复制树。
3. 也可以使用CHANGE MASTER TO更新来修改从服务器,而不用停止从I/O线程,但是它的支持的属性有限,不支持卸载所有变更。
4. 也可以通过删除整个复制树,然后重新运行创建复制树的语句来修改复制树。一些复制树变更和从服务器变更需要此操作,因为其他方法无法完好地完成此任务。