在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'

MySQL的sql_mode设置导致报错1292的更多相关文章

  1. mysql server id一样导致报错

    (root@localhost) 16:03:38 [(none)]> show slave status \G; Last_IO_Errno: 1593 Last_IO_Error: Fata ...

  2. MySQL 表与字段编码格式报错

    MySQL 表与字段编码格式报错 一.数据库,表,字段编码格式都为latin1(iso-8859-1) .当数据保存到数据库后,中文显示乱码. 解决办法: 1.在访问数据库连接串中添加编码格式: &l ...

  3. 域名打开没有加上“http://”,导致报错{"code":-32603,"message":"Cannot navigate to invalid URL"}

    1.在robotframework中写用例 Open Browser  192.168.4.110:8880/jwzh  Chrome 2.没有写http:// 3.导致报错 4.正确写法应该是 Op ...

  4. MO拆分计划行程序中写入PRODUCTIONORDERS表数据出现重复导致报错(BUG)20180502

    错误提示:ORA-00001: 违反唯一约束条件 (ABPPMGR.C0248833319_6192)ORA-06512: 在 "STG.FP_MO_SPLIT", line 19 ...

  5. 在给mysql数据库备份时,报错: mysqldump: Got error: 145: Table '.\shengdaxcom\pre_forum_thread' is marked as c rashed and should be repaired when using LOCK TABLES

    在给mysql数据库备份时,报错: mysqldump: Got error: 145: Table '.\shengdaxcom\pre_forum_thread' is marked as cra ...

  6. this.$Message.success('提示信息') 少写了一个c 导致报错

    this.$Message.success('提示信息') 少写了一个c 导致报错 而且 $Message 输出还没显示,导致我以为是没有 $Message 对象了,其实全局对象直接调用即可

  7. egg 连接 mysql 的 docker 容器,报错:Client does not support authentication protocol requested by server; consider upgrading MySQL client

    egg 连接 mysql 的 docker 容器,报错:Client does not support authentication protocol requested by server; con ...

  8. MySQL Insert数据量过大导致报错 MySQL server has gone away

    接手了同事的项目,其中有一个功能是保存邮件模板(包含图片),同事之前的做法是把图片进行base64编码然后存在mysql数据库中(字段类型为mediumtext)然后保存三张图片(大概400k)的时候 ...

  9. 黄聪:Wordpress、PHP使用POST数据过大导致MySQL server has gone away报错原因分析

    错误原因: 当POST的数据超过 max_allowed_packet 就会报 MySQL server has gone away 的错误. 1.查看当前Mysql的 max_allowed_pac ...

  10. mysql的sql_mode设置

    参考官方文档: mysql可以为不同的客户端设置不同的sql_mode,并且每个应用能够设置他自己的会话级别的sql_mode.sql_mode会影响sql语法以及mysql显示数据的正确性. Whe ...

随机推荐

  1. Spark架构与运行流程

    1. 阐述Hadoop生态系统中,HDFS, MapReduce, Yarn, Hbase及Spark的相互关系. 2. Spark已打造出结构一体化.功能多样化的大数据生态系统,请简述Spark生态 ...

  2. 在linux上启动arthas报“Can not find java process”

    发生背景 完整报错信息: [***@localhost ~]$ java -jar arthas-boot.jar [INFO] JAVA_HOME: /usr/lib/jvm/java-1.8.0- ...

  3. 好用到飞起的新项目「GitHub 热点速览」

    虽然本周 GitHub 热榜都是一些熟悉的面孔,但还是有不少新开源的项目,比如受启发于 Stripe IDs 的 UUIDv7 扩展 typeid,相信有了它,数据标识问题就迎刃而解了.此外,还有刚开 ...

  4. VSCode设置第三方字体

    最近需要写C,所以下了一个VSCode IDE嘛 当然是美观最重要了(不是 个人比较喜欢JetBrains家的字体 在IDEA中主要使用的是 JetBrains Mono 想着把VSCode的字体也设 ...

  5. SpringBoot 使用 Sa-Token 实现账号封禁、分类封禁、阶梯封禁

    一.需求分析 之前的章节中,我们学习了 踢人下线 和 强制注销 功能,用于清退违规账号.在部分场景下,我们还需要将其 账号封禁,以防止其再次登录. Sa-Token 是一个轻量级 java 权限认证框 ...

  6. ubuntu server安装图形化界面

    只需一个命令,然后重启即可: # apt-get install ubuntu-desktop # 查看下一次启动的设置 systemctl get-default # reboot

  7. Inpaint Anything:一键进行多种图像修补

    本文分享自华为云社区<绘制一切>,作者: 雨落无痕 . 绘制一切-Inpaint Anything 相关链接: Notebook案例地址:绘制一切 AI Gallery:https://d ...

  8. 何为DDD

    从这一刻开始,请大家忘记自己是一名技术人员,用业务的角度来思考问题. 1.什么是DDD DDD(Domain-driven design,领域驱动设计),是一个很好的应用于微服务架构的方法论 DDD要 ...

  9. 代码随想录算法训练营第三天| LeetCode 203.移除链表元素(同时也对整个单链表进行增删改查操作) 707.设计链表 206.反转链表

    203.移除链表元素         题目链接/文章讲解/视频讲解::https://programmercarl.com/0203.%E7%A7%BB%E9%99%A4%E9%93%BE%E8%A1 ...

  10. sqli笔记

    MySQL数据库自带的数据库information_schema 里面有三个比较重要的表  SCHEMATA .TABLES . COLUMNS  保存数据库所有的数据库名 表名  字段名 SCHEM ...