欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MySql5.7版本问题sql_mode=only_full_group_by的完美解决方案

程序员文章站 2023-12-28 12:08:04
...

查看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 @@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';

laragon上我试过并不能解决!!!

laragon上的解决方法:
1.打开 菜单->mysql->my.ini 然后找到 找到mysqld

[mysqld]
port=3306
socket=/tmp/mysql.sock
key_buffer_size=256M
max_allowed_packet=512M
table_open_cache=256
sort_buffer_size=1M
read_buffer_size=1M
read_rnd_buffer_size=4M
myisam_sort_buffer_size=64M
thread_cache_size=8
query_cache_size=16M

secure-file-priv=""
explicit_defaults_for_timestamp=1
datadir= "D:/laragon/data/mysql/mysql"
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

在他的最下面添加一行,如上

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

最后重启mysql,完美解决问题!

上一篇:

下一篇: