美文网首页
MySQL5.7版本sql_mode=only_full_gro

MySQL5.7版本sql_mode=only_full_gro

作者: 坤平 | 来源:发表于2020-07-27 11:48 被阅读0次
    • MySQL5.7版本默认设置了 mysql sql_mode = only_full_group_by 属性,导致出现问题:


      image.png
    • MySQL函数:any_value(field) 允许,非分组字段的出现,和关闭 only_full_group_by 模式有相同效果。
    • 很多时候从5.6升级到5.7时,为了语法兼容,大部分都会选择调整sql_mode,使其保持跟5.6一致,为了尽量兼容程序。
    1. 查询MySQL数据库版本
    select version();
    
    1. 查看sql_mode的语句
    select @@GLOBAL.sql_mode;
    
    1. sql语句暂时性修改sql_mode(重启mysql数据库服务之后,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
    
    1. 推荐解决方案
    • 修改my.cnf配置文件,通过手动添加sql_mode的方式强制指定不需要ONLY_FULL_GROUP_BY属性,
      my.cnf位于etc文件夹下,vim下光标移到[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
    
    1. 重启服务
    service mysqld restart
    

    相关文章

      网友评论

          本文标题:MySQL5.7版本sql_mode=only_full_gro

          本文链接:https://www.haomeiwen.com/subject/xwfzlktx.html