在MySQL配置主从关系时,会用到start slave, stop slave命令,本文简单介绍两个命令的使用方法和作用。
mysql> start slave
不带任何参数,表示同时启动I/O 线程和SQL线程。
相当于:
mysql > start slave sql_thread;
mysql > start slave io_thread;
I/O线程从主库读取bin log,并存储到relay log中继日志文件中。
SQL线程读取中继日志,解析后,在从库重放。
until 选项的使用
以binlog 日志位点为例:
mysql> start slave until MASTER_LOG_FILE='mysql-bin.000007',MASTER_LOG_POS=194;
Query OK, 0 rows affected (0.00 sec)
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 127.0.0.1
Master_User: rep
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000007
Read_Master_Log_Pos: 194
Relay_Log_File: relay-bin.000005
Relay_Log_Pos: 407
Relay_Master_Log_File: mysql-bin.000007
Slave_IO_Running: Yes
Slave_SQL_Running: No
... ...
sql 线程 追到 MASTER_LOG_FILE、MASTER_LOG_POS指定的位置,sql 线程会自动停止。
从show slave status的输出中可以看到,sql 线程已停止,而io 线程正常执行。
until中也支持GTID,不要将log file与GTID方式混用。
类似的,
mysql> stop slave
相当于
mysql > stop slave sql_thread;
mysql > stop slave io_thread;
完成停止I/O 线程和SQL线程的操作。