今天在上正式數據服務器測試軟件時突然發生了sql_mode的報錯: sql_mode=only_full_group_by。之前在本地庫的時候沒有遇到過一臉懵逼,在查閱了資(bai)料(du)之后才明白原來是數據庫版本為5.7以上的版本,默認是開啟了 only_full_group_by
模式的,但開啟這個模式后,原先的 group by
語句就報錯。
首先使用以下查詢語句查詢是否含有only_full_group_by:
select @@GLOBAL.sql_mode;
然后使用如下sql語句進行sql_mode的更新,去除掉only_full_group_by:
set @@GLOBAL.sql_mode=''; set @@GLOBAL.sql_mode='STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION';
這樣更新之后在不進行服務器重啟時可以一直使用,但是一旦服務器重啟之后將會回歸原來的樣子only_full_group_by一樣的存在。
所以對此我們需要對mysql的配置文件my-default.ini (或者my.cnf)進行修改,在里面的[mysqld]下面添加
sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
實圖如下:
這樣即使重啟服務器那么sql_mode一樣的不會含有only_full_group_by了,這樣就OK了
--------------------------------------------------------------------------------------分割線-------------------------------------------------------------------------------------------------------------------
個人使用