mysql主辅同步从库可能会出现插入数据的问题,如下图:

QQ图片20150428163915

 

show global variables like ‘binlog_format’;  查看binlog日志的格式,需要把statement格式改为mixed的格式.

遇到这样的情况,可以直接修改从库的my.cnf,添加如下:

slave-skip-errors = 1062 (忽略所有的1062错误)

binlog_format=mixed

然后重启mysql,进入后发现恢复正常了,

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

最后进my.cnf 注释掉

#slave-skip-errors = 1062

再次重启mysql,同步恢复正常,保持观察。

看来导致 mysql 主从复制出错的原因还真不少修复的办法也不止一个,binlog的格式也是其中之一。

 

PS:

可以再nagios中添加mysql监控,如果主从同步挂了,可以收到报警邮件及时处理。

可以查看tail -f mysql_error.log中的报错信息,停止从库stop slave

进入主库锁表:

FLUSH TABLES WITH READ LOCK;

mysql> show master status;
+——————-+———–+————–+——————+——————-+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+——————-+———–+————–+——————+——————-+
| master-bin.000002 | 848304531 | | | |
+——————-+———–+————–+——————+——————-+
1 row in set (0.00 sec)

进入从库重新指向master

mysql> CHANGE MASTER TO MASTER_HOST=’192.168.x.220′,MASTER_PORT=3306,MASTER_LOG_FILE=’master-bin.000001′,MASTER_LOG_POS=977,MASTER_USER=’repluser’,MASTER_PASSWORD=’replpass’; 

完成上面这些后
start slave;
回到主库
unlock tables; 解锁

回到从库 查看
show slave status\G;

如果继续出现上面的错误,可以跳过错误的方法,进入从库

stop slave;
set global sql_slave_skip_counter=1; (1是指跳过一个错误)
slave start;
再show slave status\G;查看

如果还是报错,按照上面的处理方法解决,修改从库的my.cnf.

 

MySQL索引原理及慢查询优化

MySQL凭借着出色的性能、低廉的成本、丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库。虽然性能出色,但所谓“好马配好鞍”,如何能够更 好的使用...

阅读全文

Mysql添加删除索引

使用索引,能够提高查询的速度 1、创建索引 1)ALTER TABLE 创建普通索引,UNIQUE索引或者PRIMARY KEY索引 ALTER TABLE table_name ADD INDEX index_name(colu...

阅读全文

nginx反向代理问题汇总及监控脚本

今天配置nginx的反向代理,配置文件如下: worker_processes 1; events { worker_connections 1024;} http { include mime.types; default_type application/...

阅读全文

欢迎留言