mysql only 关键字_MySQL出现 sql_mode=only_full_group_by的错误解决方法

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-30 12:55   186   0

MySQL出现 sql_mode=only_full_group_by的错误解决方法

今天导入数据时出现了如下 错误

d6b0af3986b024933773ad2bedbb470f.png

原因是数据库版本为5.7以上的版本,默认是开启了 only_full_group_by 模式的,但开启这个模式后,原先的 group by 语句就报错

查询MySQL版本可以在命令行模式刚连接上数据库时就能看到,或者在进入mysql后使用命令:status查看版本号,

既然是版本的问题,那就查询一下配置看看具体的情况,命令行连接上数据库,再输入命令:输入如下命令 看一下配置

@@sql_mode

6b11711bf4ec4b3a78934ce8fd0e5f03.png

其中ONLY_FULL_GROUP_BY就是造成这个错误的罪魁祸首了,

对于group by聚合操作,如果在select中的列没有在group by中出现,那么这个SQL是不合法的,因为列不在group by从句中,所以设置了sql_mode=only_full_group_by的数据库,在使用group by时就会报错,

找到原因我们修改这个配置就可以了,找到MySQL配置文件,在linux系统上/etc/my.cnf文件,查询sql_mode字段,我并没有在配置文件中找到这个关键字,所以我手动添加进去: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 才能生效.// 重启命令

service mysqld restart;

// 退出数据库

exit;

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP