MySQL Slave_SQL_Running NO的解決方式
MySQL Slave要確定是否正在運作,在執行【mysql>show slave status;】時,底下2個必須為Yes
Slave_IO_Running: Yes
Slave_SQL_Running:Yes
但是,如果Slave_SQL_Running為NO時,要怎麼解決呢?
1. 先到slave主機停掉slave的運作。
mysql> stop slave;
2. 查看Master主機的File和Position的值。
mysql> show master status;
+——————+———–+————–+——————+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+——————+———–+————–+——————+
| mysql-bin.000118 | 199777882 | | |
+——————+———–+————–+——————+
1 row in set (0.00 sec)
3. 到slave主機手動設定。
mysql > change master to
>master_host=’master_ip’ ,
>master_user=’user’,
>master_password=’pwd’,
>master_port=3306,
>master_log_file=’mysql-bin.000118′,
>master_log_pos=199777882;
4. 最後啟動slave運作。
mysql> start slave;
Slave_IO_Running: Yes
Slave_SQL_Running:Yes
但是,如果Slave_SQL_Running為NO時,要怎麼解決呢?
Slave_SQL_Running:NO 的解決方式1:
直接跳過一行造成停止的SQL指令mysql> stop slave;
mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql> start slave;
Slave_SQL_Running:NO 的解決方式2:
直接指定Master記錄的File及Position到Slave1. 先到slave主機停掉slave的運作。
mysql> stop slave;
2. 查看Master主機的File和Position的值。
mysql> show master status;
+——————+———–+————–+——————+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+——————+———–+————–+——————+
| mysql-bin.000118 | 199777882 | | |
+——————+———–+————–+——————+
1 row in set (0.00 sec)
3. 到slave主機手動設定。
mysql > change master to
>master_host=’master_ip’ ,
>master_user=’user’,
>master_password=’pwd’,
>master_port=3306,
>master_log_file=’mysql-bin.000118′,
>master_log_pos=199777882;
4. 最後啟動slave運作。
mysql> start slave;
留言
張貼留言