MySQL遇到的坑:sql_mode=only_full_group_by不兼容
2024-09-18 09:46:58
描述:
解决方案:
show variables like "%sql_mode%";
SET sql_mode=(SELECT REPLACE(@@sql_mode,"ONLY_FULL_GROUP_BY",""));
或者:
show variables like "sql_mode";
set sql_mode='';
set sql_mode='NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES';
或者:
--查看sql_mode
select @@global.sql_mode;
--ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
--修改sql_mode
SET GLOBAL sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
--再次查看得到。。
--STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
就不报错了:
方案2:
在my.cnf 里面设置sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'在sql_mode 中去掉only_full_group_by 解决问题!
mysql的sql_mode合理设置
- mysql的sql_mode合理设置
sql_mode是个很容易被忽视的变量,默认值是空值,在这种设置下是可以允许一些非法操作的,比如允许一些非法数据的插入。在生产环境必须将这个值设置为严格模式,所以开发、测试环境的数据库也必须要设置,这样在开发测试阶段就可以发现问题
如果使用mysql,为了继续保留大家使用oracle的习惯,可以对mysql的sql_mode设置如下:
在my.cnf添加如下配置
[mysqld]
sql_mode='ONLY_FULL_GROUP_BY,NO_AUTO_VALUE_ON_ZERO,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,PIPES_AS_CONCAT,ANSI_QUOTES'
最新文章
- async &; await 的前世今生(Updated)
- 求sqrt()底层效率问题(二分/牛顿迭代)
- AngularJS学习--- AngularJS中模板链接和图像 ng-src step6
- 【leetcode❤python】387. First Unique Character in a String
- 安装Adobe Dreamweaver CS6 免序列号 官方破解版
- Swift 实现iOS Animation动画教程
- 【设计模式】单件模式(Singleton)--各类单件模式的比较
- C#反射(转载)
- 查看linux服务器中的apache是否安装以及安装路径
- Media Queries 自适应布局展示
- 从 ReactiveCocoa 中能学到什么?不用此库也能学以致用
- windows下搭建NFS服务器
- linux下FTP服务器搭建教程1
- mysql 开发基础系列2 整型数据类型
- 图解JAVA参数传递
- 在使用MyCat和MySqL时的错误总结
- Dependency Parsing -13 chapter(Speech and Language Processing)
- CentOS7配置Mysql热备份
- Babylon.js官方性能优化文档中文翻译
- 【CODEFORCES】 A. Keyboard