美文网首页mysql
mysql 5.7 报错:ERROR 1055 (42000):

mysql 5.7 报错:ERROR 1055 (42000):

作者: whmyahoo | 来源:发表于2020-07-23 11:39 被阅读0次

    在使用旧版本的mysql进行排序操作时,默认查询的字段是需要全部都在group by 子句中出现的,也就是说如下的sql语句是会报错的:

    select * from sys_user group by id;

    因为group by 子句,只出现了id字段,所以这条语句只有查询出id字段才不会报错,如:select id from sys_user group by id;

    如果需要查询出多余的字段,则需要进行如下的配置:

    解决方法:

    1、登陆mysql服务器,执行以下两条命令,在global与session级都修改;

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

    mysql> set session sql_mode='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文件的[mysqld]字段中,指定sql_mode的值:

     [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

    以上两种方法同时执行后,不用重启mysql

    相关文章

      网友评论

        本文标题:mysql 5.7 报错:ERROR 1055 (42000):

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