📅  最后修改于: 2023-12-03 15:12:19.801000             🧑  作者: Mango
当使用 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 模式的语句,因此会出现该错误。
为了解决这个问题,有两种简单的解决方法:
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
[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
sudo service mysql restart
.env
文件DB_CONNECTION=mysql
后面添加一行 DB\_STRICT\_MODE=false
php artisan serve
只要遵循上述解决方案之一,即可轻松解决“这与 sql_mode=only_full_group_by laravel 不兼容 - SQL” 错误。同时,我们建议开发人员在编写 SQL 语句时,尽量遵循 SQL 标准,并注意 MySQL 版本和严格模式的设置,以确保系统的稳定性和安全性。