这与MySQL错误时区有关吗? `value` datetime DEFAULT'0000-00-00 00:00:00',

时间:2019-11-19 03:20:54

标签: mysql timestamp mamp concrete5 sql-timestamp

作为设计师,我不了解MySQL,也无法更改数据库。放轻松!


创建错误

  1. 从运行MySQL 5.7.27的服务器上导出了Concrete5 db(修改后可以在php 7上运行)

  2. 将数据库导入运行MySQL 5.7.26的MAMP Pro 5.5.1进行本地开发

  3. 在像这样的与时间相关的行上导入失败...

Querious Import Error

ResolveFieldContext<TSource>

找到答案

1。 MYSQL 5.7 +

许多答案都说错误是因为MySQL 5.7+不再接受空白日期,而是从已经运行MySQL 5.7.27的服务器中导出了数据库?

2。时区问题

其他答案表明这是时区差异,但是服务器和本地Mac都在运行NZDT。 MAMP Pro似乎使用系统时区。

3。 QUERIOUS / SEQUAL PRO

尝试了多个数据库应用程序,以防特定于应用程序的问题出现,但都显示相同的错误。


问题

任何人都可以(向设计者)解释确切的问题是什么以及如何在不更改数据库的情况下解决问题?

1 个答案:

答案 0 :(得分:2)

MySQL 5.7默认情况下不允许空白日期。

  1. 该数据库在MAMP Pro中不起作用,因为默认情况下启用了MySQL严格模式。

  2. 数据库已在实时服务器上运行,因为已禁用MySQL严格模式。

  3. 解决方案是在MAMP Pro中禁用严格模式。

禁用MySQL严格模式并在MAMP Pro中允许空白日期:

  1. 关闭MAMP Pro服务器
  2. 转到文件>编辑模板> MySQL(my.conf)>您正在使用的MySQL版本
  3. 在文件的前三分之一中,查找(带有方括号)...

[mysqld]

  1. 直接在其下方添加sql_mode =“”,如下所示...
[mysqld]
sql_mode=""
  1. 这将禁用严格模式并允许空白日期
  2. 保存文件并关闭
  3. 启动服务器
  4. 导入您的数据库

如果您不知道正确的搜索词; “在MAMP Pro中禁用MySQL严格模式”,您将在旷野徘徊数小时。希望这对其他设计师有所帮助。

更多参考:https://mampsupportforum.com/forums/latest/mamp-mamp-pro-disable-mysql-strict-mode