首页 > 数据库 >MySQL的sql_mode设置导致报错1292

MySQL的sql_mode设置导致报错1292

时间:2022-08-29 21:15:08浏览次数:145  
标签:NO 数据库 MySQL ZERO 报错 mode sql

在MySQL8.0的一个PXC集群中,默认的sql_mode设置如下:

select @@sql_mode;
+-----------------------------------------------------------------------------------------------------------------------+
| ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION |
+-----------------------------------------------------------------------------------------------------------------------+

此时某些insert操作会报1292错:
[ERR] 1292 - Incorrect datetime value
字面意思很明显,是数据格式的问题,默认情况下MySQL都设置了严厉模式,不同于Oracle默认的相对宽松的模式,8.0版本的这些严厉模式包括建表时不允许没有主键,插入日期型数据不能为0或其他非法格式等等,这些模式的设置会导致在数据迁移、兼容性测试时报错,要么修改应用限制以适配数据库,要么修改数据库配置以适配已有的应用。
我们选择去掉date相关的2个限制NO_ZERO_IN_DATE和NO_ZERO_DATE,也去掉STRICT_TRANS_TABLES,以下临时修改数据库全局配置:

set global sql_mode = 'ONLY_FULL_GROUP_BY,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

这样后续的会话连接就不错报错了,需要注意的是,在PXC集群需要修改所有的数据库节点,如果只修改一个节点,会因为无法实时同步数据而继续报错。
一劳永逸的方法就是修改数据库配置文件/etc/my.cnf,sql_mode设置如下,重启数据库生效:

sql_mode='ONLY_FULL_GROUP_BY,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'

标签:NO,数据库,MySQL,ZERO,报错,mode,sql
From: https://www.cnblogs.com/likingzi/p/16637359.html

相关文章

  • MySQL低配数据库被大量数据导入时KO
    在一个低配MySQL数据库(笔记本电脑虚机环境,虚机配置2CPU/3G内存),在3000万级别的大量数据LOADDATA方式导入时,坚持一小时后,终于被KO了,甚至没写下任何有用的日志,只是在操作界面......
  • MySQL快速导入千万条数据(3)
    接上文,本次在较高性能的X86物理机上,做真实生产环境的大数据量导入测试。一、测试环境■CPU是24核,每核2线程,即48CPU$lscpuArchitecture:x86_64CPUop-mode......
  • MySQL快速导入千万条数据(2)
    接上文,继续测试3000万条记录快速导入数据库。一、导入前1000万条数据清库、建库、新建表结构、导入前1000万条数据,结果:■1000万行,有2索引导入耗时:16分钟QueryOK,999......
  • MySQL快速导入千万条数据(1)
    对于传统的关系数据库如oracle,在大量数据导入方面的效率,我们一般有一个大概的认知,即1分钟以内可以导入千万条数据,而对于MySQL数据库,普遍观点以为性能相对较差,尤其时对于千......
  • MySQL PXC集群大事务提交超限
    研发人员在测试大事务提交时遇见了错误:Goterror5-'Transactionsizeexceedsetthreshold'duringCOMMIT测试了几次都是1200S的时候停止的,不过在注释掉特定步骤后,......
  • 基本的mysql语句
    基本的mysql语句  本节课先对mysql的基本语法初体验。操作文件夹(库)增createdatabasedb1charsetutf8;查#查看当前创建的数据库showcreatedatabase......
  • [Typescript] Step 3. Turn on "noImplicitAny" and even more strict mode
    Step3:Turnon"noImplicitAny"Fromprevioussteps,weallowimplicitany:https://www.cnblogs.com/Answer1215/p/16634618.html Now,weneedtoturnon"noIm......
  • IDEA报错:Error:java: Compilation failed: internal java compiler error
    查看这些配置,确保版本一样......
  • shell #!/bin/bash: No such file or directory报错
    写了个shell脚本第一行是#!/bin/bash执行时报错#!/bin/bash:Nosuchfileordirectory虽然不影响执行,但是每次都报这个错误看着很别扭百度了一下,因为我这个sh文件是......
  • MySQL(三)+测试题
    MySQL索引在MySQL中,创建MySQL的索引主要是为了提⾼MySQL查询的效率。但是添加太多的索引也是会降低更新表的速度的,因为对表进⾏DML操作的时候,MySQL的内部不仅仅要保存数......