赞
踩
升级 MySQL 的版本为 8.0.12 后,出现了问题。
创建数据表,或执行更新操作时,报错 [Err] 1055 ...
错误信息如下:
[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_schema.PROFILING.SEQ' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with 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_ENGINE_SUBSTITUTION
其次,得到我们想要的 sql_mode 的新值。
- # 去掉前面的 "ONLY_FULL_GROUP_BY,"
- sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
然后,修改 MySQL 的配置文件。在 [mysqld] 区块下添加 sql_mode 配置项。
[mysqld] sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
最后,重启 MySQL 即可。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。