今天偶然查看以前配置的一主多从的数据库竟然发现有两台从数据库无法正常工作,不过幸运的是还遗留一台正常的从数据库slave1
为了不影响线上数据库的正常工作,选择在线修改从数据,查看发现出现的错误均是一条sql语句无法在从数据库上执行,尝试使用
> SET GLOBAL SQL_slave_SKIP_COUNTER = 1;
> start slave;
以期跳过该语句继续执行其他同不内容 不想却没有效果,从数据库的sql线程依然是no的显示
无奈之下,只得备份从数据slave1,打开slave1的终端进入mysql命令行
>mysql
>flush tables with read lock ;
>show slave status\G
重新打开slave1的终端(为保持表的读锁正常工作),
进入data/文件夹下
> tar cxvf /root/backup.tar.gz /databasename/
>scp /root/backup.tar.gz ibdata1 root@172.16.**.**:/mysql_dir/data
进入不工作的slave停止mysql服务
>service mysqld stop
> cd /mysql_dir/data/
>tar zxvf backup.tar.gz -C .
>rm -rf ib_*
>chmod 660 ibdata1
>chown mysql:mysql ibdata1
>service mysqld start
>mysql
mysql>change master to master_host='172.16.**.**(slave1的master的ip地址)',master_user='repl',master_password='repl',master_log_file='mysql-bin.000**',mysql_log_pos=1234123;
mysql>start slave
通过show slave status 可查看slave配置完成