You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

本地MySQL5.7导入数据库至MariaDB5.5服务器报1067错误

错误根因

这是典型的跨版本数据库语法兼容问题:

  • MariaDB 5.5、MySQL 5.5及更早版本,不支持给DATETIME类型字段设置CURRENT_TIMESTAMP作为默认值,这个特性是MySQL 5.6、MariaDB 10.0之后才加入的。
  • 本地使用的MySQL 5.7支持该语法,导出的建表语句直接保留了created datetime NOT NULL DEFAULT CURRENT_TIMESTAMP的写法,导入到低版本的MariaDB 5.5.68时,数据库无法识别这个默认值配置,直接抛出1067错误。

补充说明:在5.5版本的数据库里,只有TIMESTAMP类型字段原生支持CURRENT_TIMESTAMP作为默认值,这是该版本最常见的兼容坑点之一。

解决方案

按推荐优先级排序:

  • 方案1:升级服务器数据库版本
    最稳妥的长期方案,将服务器端的MariaDB升级到10.0及以上版本,和本地MySQL 5.7的语法特性完全对齐,无需修改导出的SQL内容即可直接导入,后续也不会碰到其他5.5版本缺失新特性导致的兼容问题。
  • 方案2:修改建表语句适配低版本
    如果暂时没有升级数据库的条件,可以把对应字段的类型从DATETIME调整为TIMESTAMP,修改后的字段定义如下:
    `created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
    
    注意:TIMESTAMP类型的可存储时间范围为1970年-2038年,如果业务需要存储2038年之后的时间数据,不要使用这个方案。
  • 方案3:临时调整SQL模式跳过校验
    仅适合临时测试场景使用,生产环境不推荐。导入前先在目标数据库执行以下语句,关闭会话级的严格日期校验:
    SET SESSION sql_mode = '';
    
    执行完成后再重新运行导入命令即可,这个方案可能导致后续写入的时间字段出现非预期的零值、异常值,稳定性没有保障。

内容的提问来源于stack exchange,提问作者itdoesntmatter1222

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 09:42:26