当前位置:操作系统 > Unix/Linux >>

this is incompatible with sql_mode=only_full_group_by linux解决方案

MySQL错误-this is incompatible with sql_mode=only_full_group_by linux解决方案
通过配置文件永久修改sql_mode

mysql安装在服务器上和安装在本地,修改配置文件的方式有点区别。


1)Linux下修改 my.cnf文件 (windows类似)
文件地址一般在:/etc/my.cnf,/etc/mysql/my.cnf
找到sql-mode的位置,去掉ONLY_FULL_GROUP_BY
然后重启MySQL;
有的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

注意要加入到[mysqld]下面,如加入到其他地方,重启后也不生效


2)修改成功后重启MySQL服务
service mysql restart
重启好后,再登录mysql,输入SQL:

show variables like ‘%sql_mode’; 


如果没有ONLY_FULL_GROUP_BY,就说明已经成功了。
如果还不行,那么只保留STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION 即可
追加内容为:
sql-mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
网上有些提供了sql_mode的值,却导致重启mysql服务启动不了
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
这时,只需要将sql_mode 值中 “NO_AUTO_CREATE_USER” 这个属性去掉即可。
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,