📌  相关文章
📜  这与 sql_mode=only_full_group_by laravel 不兼容 - SQL (1)

📅  最后修改于: 2023-12-03 15:12:19.801000             🧑  作者: Mango

这与 sql_mode=only_full_group_by laravel 不兼容 - SQL

简介

当使用 Laravel 框架查询 MySQL 数据库时,可能会遇到一个错误,该错误提示“这与 sql_mode=only_full_group_by laravel 不兼容 - SQL” ,这是因为 MySQL 在 5.7 版本以后默认启用了 only_full_group_by 模式,该模式需要对查询结果进行更严格的限制,以确保 MySQL 符合 SQL 标准。而 Laravel 生成的 SQL 查询语句中,可能包含一些不符合 only_full_group_by 模式的语句,因此会出现该错误。

解决方案

为了解决这个问题,有两种简单的解决方法:

方法一:关闭 MySQL 严格模式
  1. 编辑 MySQL 配置文件:sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
  2. [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
  3. 重启 MySQL 服务:sudo service mysql restart
方法二:修改 Laravel 配置
  1. 打开 Laravel 项目中的 .env 文件
  2. DB_CONNECTION=mysql 后面添加一行 DB\_STRICT\_MODE=false
  3. 保存文件并重启 Laravel 服务:php artisan serve
总结

只要遵循上述解决方案之一,即可轻松解决“这与 sql_mode=only_full_group_by laravel 不兼容 - SQL” 错误。同时,我们建议开发人员在编写 SQL 语句时,尽量遵循 SQL 标准,并注意 MySQL 版本和严格模式的设置,以确保系统的稳定性和安全性。