从数据库上着两个进程的介绍
slave从数据库机器上有两个关键的进程:
一个是slave_io_running,负责与主机的io通信;
一个是slave_sql_running,负责自己的slave mysql进程。
如果是slave_io_running:no
肯定是因为log文件或者pos位置跟主服务器不对应导致的;
解决办法:
修改从服务器与主服务器一致即可,每次主服务器的sql操作都会影响pos位置,主从服务器的pos同时改变;
mysql-> slave stop; #关闭服务
mysql-> change master to master_log_file='主服务器的文件', MASTER_LOG_POS=0;
mysql-> slave start; #开启服务
mysql-> show slave status\G; #查看状态是否为yes
如果是slave_sql_running:no
一般是因为执行sql语句时发生错误导致,这种错误有很多触发方式,在此不一一列举:
解决办法:
1、简单粗暴:关闭服务->跳过一条记录->启动服务->查看是否为yes,否:再次跳过一条记录直到yes为止
mysql-> stop slave;
mysql-> SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql-> start slave;
mysql-> show slave status\G