...
Sql

MySql版本问题sql_mode=only_full_group_by

MySql版本问题sql_mode=only_full_group_by
查看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_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

在查出结果中可以看到里面包含了ONLY_FULL_GROUP_BY,因此我们要讲ONLY_FULL_GROUP_BY从中去掉,重新设置值。

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

上面是改变了全局sql_mode,对于新建的数据库有效。对于已存在的数据库,则需要在对应的数据下执行

set sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

修改配置文件去除ONLY_FULL_GROUP_BY这种方式是我个人比较喜欢的.
打开配置文件mysql.cnf

sudo vi /etc/mysql/mysql.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'

重启mysql

sudo service mysql restart

进入mysql查看:

SELECT @@sql_mode;

Windows
在Windows修改mysql安装目录下面配置未见 my.ini,在文件中添加

[mysqld]

sql_mode =STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

如有不足希望大家多多指教,谢谢!
————————————————
版权声明:本文为CSDN博主「XiaoMaPro」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u011893509/article/details/87896806

Composer 国内镜像大全 php生成二维码的三种方法
biu biu biu
免费SSL证书、自动化续签证书,acme.sh 完整教程:安装、使用、常见错误及解决方案 分享一个微信朋友圈点赞秒赞软件,无需下载一秒几千赞 js 通过坐标计算两个坐标之间的距离 edge浏览器google浏览器显示由该组织管理由你的组织管理解决方法 共享打印机连接错误提示错误代码 0x0000000a 解决方法