在MySQL配置主从关系时,会用到start slave, stop slave命令,本文简单介绍两个命令的使用方法和作用。
start 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 statusG
*************************** 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方式混用。
stop slave
类似的,
mysql> stop slave
相当于
mysql > stop slave sql_thread;
mysql > stop slave io_thread;
完成停止I/O 线程和SQL线程的操作。
参考
https://dev.mysql.com/doc/refman/5.6/en/start-slave.html
https://dev.mysql.com/doc/refman/5.6/en/stop-slave.html