mysql8中如何設(shè)置sql-mode
mysql8如何設(shè)置sql-mode
mysql8報錯,

在mysql配置文件下設(shè)置
sql_mode=‘NO_AUTO_VALUE_ON_ZERO,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,PIPES_AS_CONCAT,ANSI_QUOTES'

在mysqlld下添加sql-mode

mysql8配置sql_mode(解決group by遇到的Expression #2 of SELECT list is not in GROUP BY clause問題)
問題
MySQL 5.7.5及以上功能依賴檢測功能。
如果啟用了ONLY_FULL_GROUP_BY
SQL模式(默認(rèn)情況下),MySQL將拒絕選擇列表,HAVING條件或ORDER BY列表的查詢引用在GROUP BY子句中既未命名的非集合列,也不在功能上依賴于它們。
解決方法一(不推薦):sql設(shè)置
1、navcat中新建查詢:
select @@global.sql_mode
結(jié)果:
ONLY_FULL_GROUP_BY,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,問題就出在這上
2、修改sql_mode
set @@global.sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
注意:“8.0.x的版本不支持NO_AUTO_CREATE_USER,去掉即可”
這樣的方式只能解決單表,且如果Mysql服務(wù)重啟(即服務(wù)器重啟)則會被mysql的默認(rèn)ini配置覆蓋,因此不推薦。
解決方法二:修改Mysql的默認(rèn)配置文件my.ini(推薦)
以下為本人的配置:
[mysqld] # 設(shè)置3307端口(原先的mysql5已經(jīng)占用3306) port=3307 # 設(shè)置mysql的安裝目錄(你自己的目錄) basedir="D:\\Environment\\mysql-8.0.30-winx64" # 設(shè)置mysql數(shù)據(jù)庫的數(shù)據(jù)的存放目錄 datadir="D:\\Environment\\mysql-8.0.30-winx64\\data" # 允許最大連接數(shù) max_connections=200 # 允許連接失敗的次數(shù)。 max_connect_errors=10 # 服務(wù)端使用的字符集默認(rèn)為UTF8 character-set-server=utf8 # 創(chuàng)建新表時將使用的默認(rèn)存儲引擎 default-storage-engine=INNODB # 默認(rèn)使用“mysql_native_password”插件認(rèn)證 #mysql_native_password default_authentication_plugin=mysql_native_password #關(guān)閉ONLY_FULL_GROUP_BY sql_mode= 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' [mysql] # 設(shè)置mysql客戶端默認(rèn)字符集 default-character-set=utf8 [client] # 設(shè)置mysql客戶端連接服務(wù)端時默認(rèn)使用的端口 port=3307 default-character-set=utf8
配置中標(biāo)紅部分為解決問題的部分,其中注意配置需要有單引號包裹,如果你是mysql5.x,可以加上NO_AUTO_CREATE_USER;如果你是mysql8.x,則不需加上,若你加上,則會發(fā)生服務(wù)無法啟動的情況。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
- mysql 8.0 找不到my.ini配置文件以及報sql_mode=only_full_group_by解決方案
- 解決MySQL this is incompatible with sql_mode=only_full_group_by 問題
- MySQL配置sql_mode的參數(shù)屬性作用
- Mysql8報錯this is incompatible with sql_mode=only_full_group_by問題
- mysql怎么關(guān)閉sql_mode=ONLY_FULL_GROUP_BY模式
- MySQL出現(xiàn)this?is?incompatible?with?sql_mode=only_full_group_by錯誤的解決辦法
- MySQL報錯:sql_mode=only_full_group_by的4種輕松解決方法(含舉例)
- MySQL?中的?SQL_MODE?設(shè)置方法ANSI_QUOTES?選項解析與應(yīng)用小結(jié)
相關(guān)文章
MySQL數(shù)據(jù)表索引命名規(guī)范的實現(xiàn)示例
索引是提高查詢性能的重要工具,本文主要介紹了MySQL數(shù)據(jù)表索引命名規(guī)范的實現(xiàn)示例,包括不同類型索引的命名方法,具有一定的參考價值,感興趣的可以了解一下2024-05-05
win7下mysql6.x出現(xiàn)中文亂碼的完美解決方法
本文給大家分享win7下mysql 6.x出現(xiàn)中文亂碼的完美解決方法,非常不錯,具有參考借鑒價值,需要的朋友參考下吧2017-04-04
MySQL中show命令方法得到表列及整個庫的詳細(xì)信息(精品珍藏)
MySQL中show 句法得到表列及整個庫的詳細(xì)信息,方便查看數(shù)據(jù)庫的詳細(xì)信息。2010-11-11
mysql特殊語法insert?into?..?on?duplicate?key?update?..使用方
在我們的日常開發(fā)中經(jīng)常會遇到過這樣的情景,查看某條記錄是否存在,不存在的話創(chuàng)建一條新記錄,存在的話更新某些字段,下面這篇文章主要給大家介紹了關(guān)于mysql特殊語法insert?into?..?on?duplicate?key?update?..使用方法的相關(guān)資料,需要的朋友可以參考下2023-04-04
deepin 2014系統(tǒng)下安裝mysql數(shù)據(jù)庫的方法步驟
這篇文章主要給大家介紹了在deepin 2014系統(tǒng)下安裝mysql數(shù)據(jù)庫的方法步驟,文中通過圖文介紹的非常詳細(xì),相信對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。2017-04-04
MySQL8中大小寫敏感與不敏感排序規(guī)則的選擇(根據(jù)字段語義)
MySQL排序規(guī)則決定字符比較、排序等行為,與字符集綁定,影響ORDER?BY等操作,這篇文章主要介紹了MySQL8中大小寫敏感與不敏感排序規(guī)則的選擇,需要的朋友可以參考下2026-04-04

