smi*_*ntz 5 mysql database time replication
我已将 mysql 从站从 mysql 5.0 升级到 mysql 5.1。在追赶期间,复制在日期时间值不正确的查询上失败:
110919 13:56:18 [ERROR] Slave SQL: Error 'Incorrect datetime value: '2010-03-14 02:35:34.0' for column 'creation_date' at row 1' on query.
Run Code Online (Sandbox Code Playgroud)
我试图重新插入查询,但它再次失败,然后我将值固定为:
2010-03-14 02:35:34
Run Code Online (Sandbox Code Playgroud)
并接受了查询。
如何设置 mysql 以批准此类日期时间值以防止将来出现问题?
我的猜测是它是在表描述中设置的,并在 mysql_upgrade 期间被重置。
Mysql 5.1 以与 mysql 5.0 相同的方式操作微秒,但是微秒不能存储到任何时间数据类型的列中。根据 Mysql Doc: http://dev.mysql.com/doc/refman/5.1/en/datetime.html丢弃任何微秒部分。但是,由于您遇到此错误,您可以使用 mysql 中的 sql 模式设置启用允许无效日期。
sql-mode=allow_invalid_dates
Run Code Online (Sandbox Code Playgroud)
在 my.cnf 或 my.ini (取决于您的操作系统)。
http://dev.mysql.com/doc/refman/5.1/en/server-sql-mode.html#sqlmode_allow_invalid_dates
PS:令人惊讶的是,您在问题中提供的日期和时间实际上是夏令时(2010 年 3 月 14 日)中不存在的时间:)
归档时间: |
|
查看次数: |
7764 次 |
最近记录: |