Navicat运行sql文件报错Incorrect datetime value(Windows环境下)

在Windows环境下使用Navicat运行SQL文件时遇到'Incorrect datetime value: '0000-00-00 00:00:00' for column 'addtime' at row 1'的错误。该问题因MySQL5.7以上版本的严格日期时间检查引起。解决方法包括:1. 修改MySQL配置文件,放宽SQL模式;2. 导入完成后恢复默认设置。通过查询sql_mode确认当前数据库的模式设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Navicat运行SQL文件时报错“Incorrect datetime value: ‘0000-00-00 00:00:00’ for column ‘addtime’ at row 1”

背景:项目是很久之前的了,最近有需求需要重新运行,利用Navicat导入原来的sql文件报错:Incorrect datetime value: '0000-00-00 00:00:00' for column 'addtime' at row 1
百度后得知:mysql5.7及以上的版本更加严格。
参考链接:https://www.cnblogs.com/1010wjf/p/13163164.html

解决办法(我采取的简单粗暴):

1.打开Mysql的配置文件my.ini,在最下面加入:

sql_mode=''

然后重启mysql,再次尝试导入sql文件,导入成功。
2.一般是不建议更改配置文件的,所以在导入完成数据库之后,我把my.ini中的sql_mode=''删除了,嘿嘿嘿~
项目目前还能跑起来,不知道有没有啥隐患。。。。。。
3.利用Navicat查看当前mysql数据库的sql_mode:

### 解决 Navicat 导入 SQL 文件时遇到的错误 当使用 Navicat 导入 SQL 文件时,可能会遇到多种类型的错误。以下是针对不同错误的具体解决方案。 #### 错误:数据包大小超过 `max_allowed_packet` 如果收到类似于 "Got a packet bigger than ‘max_allowed_packet’ bytes" 的错误消息,则表明尝试导入的数据包超过了 MySQL 配置中的最大允许尺寸。为了修正此问题,可以调整 MySQL 中的最大允许包大小设置: 1. 关闭并重新启动 Navicat 软件。 2. 使用命令 **`SHOW VARIABLES LIKE '%max_allowed_packet%'`** 来确认当前配置[^1]。 3. 如果需要增大该值,在 MySQL 安装目录下的 my.ini 或 my.cnf 文件中添加或修改 max_allowed_packet 参数。例如: ```ini [mysqld] max_allowed_packet=64M ``` 保存更改后重启 MySQL 服务使新设置生效,并再次验证新的 `max_allowed_packet` 值是否已更新。 #### 错误:SQL 语法错误 (Error Code: 1064) 对于像 “You have an error in your SQL syntax...” 这样的报错信息,通常是因为 SQL 文件中含有不兼容字符或是语句格式不对所引起的。特别是当文件开头有不必要的注释标记(如 `-- ----------------------------`),这可能导致解析失败[^2]。 建议清理 SQL 文件头部多余的注释行或将这些注释放置于正式的 DDL/DML 语句之后。另外也可以考虑通过其他方式来创建数据库结构而不是依赖于可能存在问题的手动生成脚本。 #### 不勾选“每个运行中执行多个查询” 有时即使解决了上述两个常见原因仍然会持续出现问题。此时可尝试取消勾选 Navicat 设置里的选项:“工具 -> 查询编辑器 -> 执行前提示 -> 每个运行中执行多个查询”。这样做能够防止一次性发送过多指令给服务器从而减少潜在冲突的可能性[^3]。 ```sql SET GLOBAL wait_timeout = 28800; SET GLOBAL interactive_timeout = 28800; ``` 以上措施有助于提高长时间连接稳定性,间接帮助顺利完成大容量数据迁移工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值