Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and co

MySQL5.7group by语句报错:

Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 't.road_name' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

找了找原因是因为在mysql5.7之前的版本,

MySQL没有检测到功能依赖项,

only_full_group_by在默认情况下是不启用的。

在mysql5.7中only_full_group_by 默认是启用的。

所以MySQL会拒绝选择列表、条件或顺序列表引用的查询,

这些查询将引用组中未命名的非聚合列,而不是在功能上依赖于它们。

解决办法:

找到MySQL的配置文件

找到服务器上面 /etc/my.cnf文件,编辑

在文件中加入一句:

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,我这边装的是lnmp,直接输入lnmp restart 重启,重启完成后,访问网站,已经恢复正常了

猜你喜欢

转载自blog.csdn.net/hechenhongbo/article/details/106951386