1

我创建视图,声明如下:</p>

DELIMITER $$
USE `dada`$$
DROP VIEW IF EXISTS `view_product_new`$$
CREATE ALGORITHM=UNDEFINED DEFINER=`dada`@`%` SQL SECURITY DEFINER VIEW `view_product_new` AS 
SELECT product_id,FROM_UNIXTIME(`update_date`,'%Y%m%d') FROM web_product$$
DELIMITER ;

可以成功创建视图,但是我的binlog被破坏了。声明如下:</p>

mysqlbinlog mysql-bin.000167

错误:Log_event::read_log_event() 中的错误:“读取错误”,data_len:66129,event_type:32

如果我删除 FROM_UNIXTIME( update_date,'%Y%m%d'),则上述语句不会发生

我的mysql版本是5.1.30

4

1 回答 1

0

正如我在评论中所说,您使用的是相当旧的 MySQL 版本,根据 wikipedia的说法,它实际上是在 2009 年之前推出的。

旧版本必然包含已在新版本中修复的错误,因此如果您的代码没有任何明显错误,升级可能会解决您遇到的问题。

即使没有,升级也符合您的利益。5.1 分支是 Oracle 目前支持的最古老的分支。他们最近还发布了 MySQL 5.6,他们可能不想继续积极维护 3 个分支......

5.6 是新的,所以它可能仍然存在需要解决的问题,但如果您先备份数据库,升级到 5.5 应该是相当安全的。如果安装 5.5 时出现最坏的情况和无法解决的问题,您始终可以使用备份回滚到旧版本。

于 2013-03-08T07:20:20.853 回答