MySQL 關閉 ONLY_FULL_GROUP_BY

查詢:

SELECT @@sql_mode;
SELECT @@GLOBAL.sql_mode;

查看sql_model參數,可以看到參數中有 ONLY_FULL_GROUP_BY

第一種臨時關閉:

在命令行輸入:set @@GLOBAL.sql_mode='';

                       set sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

這兩句命令執行之後在查詢上面的語句,ONLY_FULL_GROUP_BY沒有了,但是MySQL服務重啓之後,還會出現.

 

第二種直接關閉:

在命令行輸入:set @@GLOBAL.sql_mode='';

                       set sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

然後再my.ini配置文件中[mysqld],加入下面的一句:

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

例:

[mysqld]
## 設置端口
port=3306
## 設置mysql的安裝目錄
basedir=D:\DB\mysql\mysql-5.7.28
## 設置mysql數據庫的數據文件存放目錄
datadir=D:\DB\mysql\mysql-5.7.28-data
## 允許最大連接數
max_connections=200
## 允許接受的數據包的最大值
max_allowed_packet=30M
## 服務端使用的字符集默認爲UTF8
character-set-server=utf8
## 大小寫不敏感
lower_case_table_names=1
## 創建新表時將使用的默認存儲引擎
default-storage-engine=INNODB
## 默認使用"mysql_native_password"插件認證
default_authentication_plugin=mysql_native_password
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
[mysql]
## 設置mysql客戶端默認字符集
default-character-set=utf8

[client]
## 設置mysql客戶端連接服務端時默認使用的端口
port=3306
default-character-set=utf8

重啓MySQL服務

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章