MySQL数据同步,出现Slave_SQL_Running:no和slave_io_running:no问题的解决方法
一、问题描述:
当我们配置好MySQL主主同步时,是可以实现主主同步,但是重启机器后或者其他原因导致MySQL无法同步了。
二、Slave两个关键进程
mysql replication 中slave机器上有两个关键的进程,死一个都不行,一个是slave_sql_running,一个是Slave_IO_Running,一个负责与主机的io通信,一个负责自己的slave mysql进程。
三、如果是Slave_SQL_Running:no:
解决办法如下:
MariaDB [(none)]> stop slave; MariaDB [(none)]> SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE; MariaDB [(none)]> start slave; MariaDB [(none)]> show slave status\G
四、如果是slave_io_running:no
解决办法如下:
1、查看主服务器
MariaDB [(none)]> show master status\G
2、在从服务器上查看
问题所在:发现Master_Log_File没有对应。
3、出现Slave_IO_Running: No的机器上操作
MariaDB [(none)]> slave stop; MariaDB [(none)]>CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000026', MASTER_LOG_POS=0; MariaDB [(none)]> slave start; MariaDB [(none)]> show slave status\G
到此问题就解决了!
mysql> CHANGE MASTER TO MASTER_HOST = '192.168.11.22', MASTER_PORT = 3306, MASTER_USER = 'repl8', MASTER_PASSWORD = '1ZmE2HIx', MASTER_AUTO_POSITION = 1;
ERROR 3079 (HY000): Multiple channels exist on the slave. Please provide channel name as an argument.
mysql> reset slave all;
Query OK, 0 rows affected (0.01 sec)
stop slave;
change master to master_auto_position=0;