查詢:
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服務