Reading from net:server 正在从网络读取数据包。在 MySQL 5.7.8 之后该状态叫做“Receiving from client” - Receiving from client:server 正在从客户端读取数据包。在 MySQL 5.7.8 叫做“Reading from net”
Removing duplicates:查询使用 SELECT DISTINCT 语句时,使 MySQL 无法在早期阶段优化掉 distinct 操作。因此,MySQL 需要一个额外的阶段来删除所有重复的行,然后将结果发送到客户端
Queueing master event to the relay log:线程已读取一个事件,并将其复制到中继日志,以便 SQL 线程进行重放
Reconnecting after a failed binlog dump request:线程正在尝试重新连接到主库
Reconnecting after a failed master event read:线程正在尝试重新连接到主库,当重连连接成功时,状态将变为“Waiting for master to send event” - Registering slave on master:在连接到主库成功之后非常短暂的状态,表示正在向主库注册从库的连接信息(如从库的 IP 和端口信息等)
Waiting for its turn to commit:如果启用了 slave_preserve_commit_order 参数,则 表示从库 I/O 线程正在等待较旧的工作线程提交数据
Waiting for master to send event:线程已经连接到主库并且正在等待新的二进制 日志事件,如果主库空闲,这可能持续很长时间。如果等待时间持续超过slave_net_timeout 秒,则从库 I/O 线程发生超时。此时,从库 I/O 线程认为主库的连接断开,会尝试重新连接主库
Waiting for master update:连接到主库之前的初始状态
Waiting for slave mutex on exit:线程停止时短暂发生的状态,表示正在回收 I/O 线程的相关互斥资源
Waiting for the slave SQL thread to free enough relay log space:如果 relay_log_space_limit 变量设置值不为 0,那么当中继日志总大小增长到超过此值时。 I/O 线程会等待,直到 SQL 线程通过重放中继日志内容并删除重放完成的中继日志以释放中继日志占用的空间,使其满足中继日志中大小不大于 relay_log_space_limit 变量的值时,I/O 线程才可以继续写入中继日志操作。
Waiting to reconnect after a failed binlog dump request:如果二进制日志 dump 请求失败(由于断开连接),那么线程在进入 sleep 状态,此时出现此状态,然后I/O 线程定期尝试重新连接主库。重试之间的间隔时间可以使用 CHANGE MASTER TO 语句的 MASTER_CONNECT_RETRY 选项指定
Waiting to reconnect after a failed master event read:读取主库 binlog 时发生错误(由于断开连接)。I/O 线程在尝试重新连接主库之前,线程正在以 CHANGE MASTER TO 语句的 MASTER_CONNECT_RETRY 选项(默认为 60)设置的秒数进行 sleep(该时间是重连失败之后的重试间隔时间)
六、SQL 线程状态
Killing slave:线程正在处理 STOP SLAVE 语句
Making temporary file(append)before replaying LOAD DATA INFILE:线程正在执行 LOAD DATA INFILE 语句,并将从库将要读取的数据添加到临时文件中
Making temporary file(create)before replaying LOAD DATA INFILE:线程正在执行 LOAD DATA INFILE 语句,且正在创建临时文件,临时文件中包含了从库将要读取行数据。注意:只有在 MySQL 5.0.3 之前的版本中,主库记录了原始LOAD DATA INFILE 语句时,才能遇到此状态
Reading event from the relay log:线程正在从中继日志中读取事件,以便进行重放
Slave has read all relay log; waiting for more updates:线程已重做完所有的中继日志文件中的所有事件,正在等待 I/O 线程向中继日志中写入新的事件
Waiting for an event from Coordinator:从库使用多线程复制时(slave_parallel_workers 大于 1),此状态表示一个 slave works 线程正在等待协调器线程(Coordinator 线程)分配日志事件