龙空技术网

mysql使用过程的错误记录(五)

lisanmengmeng 81

前言:

现时各位老铁们对“mysql错误代码1062什么意思”可能比较注意,大家都需要剖析一些“mysql错误代码1062什么意思”的相关资讯。那么小编同时在网络上汇集了一些对于“mysql错误代码1062什么意思””的相关知识,希望看官们能喜欢,我们一起来了解一下吧!

mysql使用过程的错误记录(五)

一:optimize table出错解决方法

原来如此,大致意思是说innodb的数据库不支持optimize,可以用

ALTER TABLE table.name ENGINE='InnoDB';

该方法会对旧表以复制的方式新建一个新表,然后删除旧表。虽然这个过程是安全的,但是在进行操作时还是先进行备份为好

还有一种方式:

You can make OPTIMIZE TABLE work on other storage engines by starting mysqld with the --skip-new or --safe-mode option. In this case, OPTIMIZE TABLE is just mapped toALTER TABLE.

上面是说要求我们在启动的时候指定--skip-new或者--safe-mode选项来支持optimize功能

二:主从复制跳过错误

mysql主从库同步错误:1062 Error 'Duplicate entry '1438019' for key 'PRIMARY'' on query

mysql主从库在同步时会发生1062 Last_SQL_Error: Error ‘Duplicate entry ‘的问题:

解决的办法是在从库上执行:

mysql> slave stop;

mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;

mysql> slave start;

上面的方法可以解决问题,还有一种解决问题的办法是通过修改mysql的配置文件,让从库的同步线程忽略这个错误,方法:

修改mysql配置文件 /etc/my.cnf 在 [mysqld]下加一行 slave_skip_errors = 1062 ,保存.重启mysql. mysql slave可以正常同步了.

mysql主从复制,经常会遇到错误而导致slave端复制中断,这个时候一般就需要人工干预,跳过错误才能继续

跳过错误有两种方式:

1.跳过指定数量的事务:

mysql> stop slave;

mysql>SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1; #跳过一个事务

mysql>start slave;

2.修改mysql的配置文件,通过slave_skip_errors参数来跳所有错误或指定类型的错误

vi /etc/my.cnf

[mysqld]

#slave-skip-errors=1062,1053,1146,1590#跳过指定error no类型的错误

#slave-skip-errors=all#跳过所有错误

stop slave;

SET GLOBAL SQL_SLAVE_SKIP_COUNTER =1;

start slave;

1666

Error executing row event: 'Cannot execute statement: impossible to write to binary log since statement is in row format and BINLOG_FORMAT = STATEMENT.'

看到貌似是statement模式不足以应付应用,换成mixed试试看吧:

mysql> STOP SLAVE;

Query OK, 0 rows affected (0.02 sec)

mysql> SET GLOBAL binlog_format=MIXED;

Query OK, 0 rows affected (0.00 sec)

mysql> START SLAVE;

Query OK, 0 rows affected (0.00 sec)

标签: #mysql错误代码1062什么意思