admin管理员组

文章数量:1642228

问题描述

使用的数据库是 Azure Database for MySQL,其中集成的MySQL版本是:8.0.15

程序运行的时候发生异常,查看后台log发现日志中出现SQL错误:

具体错误信息如下:

ERR 1292 - Incorrect date value: '0000-00-00' for column 'xxx_xxx' at row 1

该错误发生后,造成程序插入数据时执行insert语句一直报错。


原因分析

首先进行排查的是在数据库中插入的数据是否存在字段值含有 0000-00-00 的数据,但是很快就排除了这个原因,因为所要被插入的数据集中,该字段的所有值均不存在 0000-00-00 的数据。

排查后发现最终造成原因:在Azure Database for MySQL服务中,数据库参数 sql_mode 默认设置了 NO_ZERO_IN_DATENO_ZERO_DATE,造成数据插入的时候发生该错误。


解决办法

修改 Azure Database for MySQL服务中的数据库 sql_mode 的参数值,取消勾选NO_ZERO_IN_DATENO_ZERO_DATE

1. 依次进入 Azure Database for MySQL servers,进入所要修改的数据库,在左侧菜单中找到 Server parameters"服务器参数" 菜单,并找到 sql_mode参数,取消勾选NO_ZERO_IN_DATENO_ZERO_DATE

2. 保存上述更改后,点击服务器重启

3. 最后验证,发现更改后问题得到解决


:本文原创由 bluetata 发布于https://bluetata.blog.csdn/、转载请务必注明出处。

本文标签: 解决办法incorrectDateDatabaseAzure