STOP SLAVE [thread_types]
thread_types:
[thread_type [, thread_type] ... ]
thread_type: IO_THREAD | SQL_THREAD
停止复制线程。STOP
SLAVE
需要
SUPER
特权。推荐的最佳实践是STOP SLAVE
在停止副本服务器之前在副本上执行(有关更多信息,请参见
第 5.1.15 节“服务器关闭过程”)。
使用基于行的日志记录格式时:如果要复制任何使用非事务性存储引擎的表,则应在关闭副本服务器之前在副本上
执行STOP SLAVE
或
本节后面
的注释)。STOP SLAVE SQL_THREAD
与 一样START SLAVE
,此语句可以与IO_THREAD
和
SQL_THREAD
选项一起使用来命名要停止的线程。
STOP SLAVE
导致正在进行的事务的隐式提交。请参阅第 13.3.3 节,“导致隐式提交的语句”。
从 MySQL 5.6.11 开始,
gtid_next
必须
AUTOMATIC
在发出此语句之前设置为(错误 #16062608)。
在 MySQL 5.6.13 及更高版本中,您可以通过设置系统变量
来控制
STOP SLAVE
超时前等待的时间。rpl_stop_slave_timeout
这可用于避免
STOP SLAVE
使用与副本的不同客户端连接的其他 SQL 语句之间的死锁。当达到超时值时,发卡客户端返回错误信息并停止等待,但STOP SLAVE
指令仍然有效。一旦复制线程不再繁忙,STOP SLAVE
就会执行语句并停止副本。(漏洞 #16856735)
如果当前复制事件组修改了一个或多个非事务性表,STOP SLAVE
等待事件组完成最多 60 秒,除非您为复制 SQL 线程发出KILL
QUERY
orKILL
CONNECTION
语句。如果事件组在超时后仍未完成,则会记录一条错误消息。(错误 #319,错误 #38205)
在旧版本的 MySQL 中(4.0.5 之前),这条语句被称为SLAVE STOP
. 从 MySQL 5.6.1 开始不再接受该语法。