坑人的Mysql5.7問題(默認不支持Group By語句)
Mysql5.7默認不支持Group By語句
部署項目時,項目啟動完畢。
點擊有g(shù)roup by 查詢語句時出現(xiàn)錯誤,界面中沒有該有的數(shù)據(jù)。
查詢log日志發(fā)現(xiàn)錯誤
Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'database_tl.emp.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by 。。。。
由于之前也沒有記錄,所以日志信息在網(wǎng)上找了一個大致一樣的。
原因
mysql 5.7 新特性:
點擊打開鏈接 默認是不支持GroupBy 語句的。
可以進入mysql 命令行中使用
mysql> SELECT @@GLOBAL.sql_mode;
進行查詢
結(jié)果為:
+-------------------------------------------------------------------------------------------------------------------------------------------+
| @@GLOBAL.sql_mode |
+-------------------------------------------------------------------------------------------------------------------------------------------+
| ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+-------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
所以我們需要做的就是將上面畫紅的屬性注掉。
這里為了之后全局,重啟之后也能生效,使用修改配置文件進行修改屬性
1.將這個 @@GLOBAL.sql_mode 設(shè)置為空
mysql> set @@GLOBAL.sql_mode=''; Query OK, 0 rows affected, 1 warning (0.00 sec)
2.打開配置文件,這里mysql5.7 的配置文件很詭異
這里我的配置文件的路徑為:
/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
這樣,之前項目中g(shù)roupby 語句就可以使用了
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
安裝mysql出錯”A Windows service with the name MySQL already exis
這篇文章主要介紹了安裝mysql出錯”A Windows service with the name MySQL already exists.“如何解決的相關(guān)資料,在日常項目中此問題比較多見,特此把解決辦法分享給大家,供大家參考2016-05-05
MySQL 客戶端不輸入用戶名和密碼直接連接數(shù)據(jù)庫的2個方法
MySQL 客戶端不輸入用戶名和密碼直接連接數(shù)據(jù)庫的2個方法,大家可以測試下。2009-07-07
MySQL數(shù)據(jù)庫配置信息查看與修改方法詳解
我們通常把在項目中使用的常量收集在一個文件,這個文件就是配置文件,下面這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫配置信息查看與修改的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-06-06
Node.js下向MySQL數(shù)據(jù)庫插入批量數(shù)據(jù)的方法
這篇文章主要介紹了Node.js下向MySQL數(shù)據(jù)庫插入批量數(shù)據(jù)的實現(xiàn)方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-10-10
MySql8 WITH RECURSIVE遞歸查詢父子集的方法
這篇文章主要介紹了MySql8 WITH RECURSIVE遞歸查詢父子集的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-12-12
MySQL自增鎖(Auto-Increment Lock) 的原理使用
MySQL的自增鎖用于確保自增值在并發(fā)插入時唯一且遞增,本文主要介紹了MySQL自增鎖的原理使用,具有一定的參考價值,感興趣的可以了解一下2025-03-03
安裝MySQL時,輸入mysqld --install后,顯式該文件已存在問題
這篇文章主要介紹了安裝MySQL時,輸入mysqld --install后,顯式該文件已存在問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12

