IT技术博客大学习 共学习 共进步

truncate table 不能复制到从库

MySQL支持 2009-11-30 09:10:43 浏览 3,443 次

          bug说明: 该BUG在是MySQL5.1.X中存在的一个问题。
重现方法:
        利用 5.1.31-enterprise-gpl-pro-log (Or 5.1.31-sp1-enterprise) 搭建master/slave结构同步正常进行(确认同步进行)
 注意参数:
事务隔级为: READ-COMMITTED
日值格式为: mixed

然后在主库建表:

create database wubx;
create table t1 (id int) engine=innodb;
insert into t1 values(1),(2),(3),(4),(5);
select * from t1;
+------+
| id |
+------+
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
+------+

从库:

use wubx;
select * from t1 ;
+------+
| id |
+------+
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
+------+

主库上:

use wubx;
mysql> truncate table t1;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from t1;
Empty set (0.01 sec)

从库:

use wubx;
select * from t1 ;
+------+
| id |
+------+
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
+------+

解决办法:
先删除该表,然后创建该表。
如: truncate table wubx;改变为:

drop table wubx;
create table wubx( id int) engine=innodb;

另一种方式:
修改事务隔离级别为默认的。可以MySQL的版本升级到MySQL-5.1.37后的版本。

建议继续学习

  1. 关于IO的同步,异步,阻塞,非阻塞 (阅读 16,426)
  2. 其实,文件也可以truncate (阅读 8,444)
  3. mysql 主从同步原理 (阅读 6,486)
  4. 消息分发的同步均衡策略 (阅读 6,065)
  5. 五款最好的免费同步软件 (阅读 4,705)
  6. MySQL5.5复制/同步的新特性及改进 (阅读 4,566)
  7. 大量小文件的实时同步方案 (阅读 4,484)
  8. redis源代码分析 - replication (阅读 4,344)
  9. 三款面向 Amazon S3 的开源文件同步工具之对比 (阅读 4,103)
  10. rsync主动同步代码 (阅读 3,805)