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

Is this MySQL error timezone-related? `value` datetime DEFAULT '0000-00-00 00:00:00',

作为设计师,我不懂MySQL,也没有能力修改数据库。放轻松!


造成错误

  1. 从服务器 运行ning MySQL 5.7.27[=14 导出了一个 Concrete5 数据库(在 php 7 上修改为 运行) =]

  2. 将数据库导入 MAMP Pro 5.5.1 运行ning MySQL 5.7.26 用于本地开发

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

CREATE TABLE `atDateTime` (
  `avID` int(10) unsigned NOT NULL,
  `value` datetime DEFAULT '0000-00-00 00:00:00',
  PRIMARY KEY (`avID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

已找到答案

1. MYSQL5.7+

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

2。时区问题

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

3。 QUERIOUS/SEQUAL 专业版

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


问题

谁能解释确切的问题是什么(对设计者)以及如何在不改变数据库的情况下解决?

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

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

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

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

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

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

[mysqld]

  1. 在正下方,像这样添加 sql_mode=""...
[mysqld]
sql_mode=""
  1. 这将禁用严格模式并允许空白日期
  2. 保存文件并关闭
  3. 启动服务器
  4. 导入你的数据库

如果您不知道正确的搜索词; 'disable MySQL strict mode in MAMP Pro',你在荒野中徘徊了几个小时。希望这对其他设计师有帮助。

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