修改配置文件:my.ini


SELECT c.TNAME
FROM score a,course b,teacher c
WHERE a.CNO=b.CNO
AND b.TNO=c.TNO
GROUP BY a.CNO
HAVING COUNT(a.CNO)>5

錯誤:error : Expression #6 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'billing.view_dat_sdr_201903.source' which is not functily dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

查詢后發現是因為“sql_mode=only_full_group_by”導致出錯

1、通過cmd更改sql_mode

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

重啟后還是會恢復

2、更改配置文件my.ini

原安裝文件里沒有,自己在根目錄下新建

[mysql]
# 設置mysql客戶端默認字符集
default-character-set=utf8 
[mysqld]
#設置3306端口
port = 3306 
# 設置mysql的安裝目錄
basedir=D:\mysql\mysql-8.0.11-winx64
# 設置mysql數據庫的數據的存放目錄
datadir=D:\mysql\mysql-8.0.11-winx64/data
# 允許最大連接數
max_connections=200
# 服務端使用的字符集默認為8比特編碼的latin1字符集
character-set-server=utf8

sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'

重啟依然有效。OK!

 下的破解版,文件不是很規范,根目錄里沒有my.ini,只有bin文件夾里有my.ini.txt,重命名為my.ini並加上sql_mode后並不能起作用,還是得放到根目錄下,然而放到根目錄下之后MySQL不能啟動,后發現是

basedir和datadir未下載時默認的位置,是錯的,更改后就好了~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM