問題描述
今天寫了一個sql 執行的時候遇到了this is incompatible with sql_mode=only_full_group_by。
原因分析
通過查閱資料發現是因爲下載安裝的是最新版的mysql5.7.x版本,默認是開啓了 only_full_group_by 模式的,但開啓這個模式後,原先的類似 group by語句就報錯,然後又把它移除了。就可以了。
解決方案
第一個方案
- 在您的數據庫中執行
SET @@global.sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
第二個方案
當第一個沒有效果的時候你就需要嘗試第二種。首先找你你的免安裝mysql 文件路徑。當然打開my.ini 文件 添加剛纔的配置到文件中如下:
[mysql]
default-character-set=utf8
[mysqld]
port = 3306
# Binary Logging
log-bin=mysql-bin
binlog-format=Row
#Server ID
server-id=201901
#basedir=D:\MySQL\mysql-5.7.14-winx64
#datedir=D:\MySQL\mysql-5.7.14-winx64\data
max_connections=200
character-set-server=utf8
default-storage-engine=INNODB
skip-grant-tables
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTI
然後保存退出。重啓啓動mysql 服務。在您的數據庫執行
SELECT @@global.sql_mode 發現沒有ONLY_FULL_GROUP_BY 這個模式。
這時候你在執行你的sql 就發現愛沒問題。