Mysql5.7及以上版本 ONLY_FULL_GROUP_BY報錯的解決方法_Mysql

來源:腳本之家  責任編輯:小易  

1.我就不講安裝本的MySQL下載與安裝,這里我給出安裝版界面操作按圖進行操作,如下圖所示:2.現在進入主題安裝MySQL也是需要一步一步來的,一定要按順序來操作不然一報錯安裝過程就變得繁瑣心煩起來,這里我貼出我的安裝過程和報錯的一些問題,如圖操作:3.進入上圖往下滾動選擇MySQL Community Edition(GOL)下的按鈕,進入到下載連接界面(往下滾動頁面)如圖操作:4.按自己電腦系統選擇下載版本,下載時是需要Oracle賬號登錄,沒有的小伙伴可以自己注冊,注冊好后會自行跳出下載連接,根據自己喜歡DIY路徑,我選擇下載的路徑是E盤。5.下載好后自行解壓,解壓出來會缺少my-default.ini文件和data文件,大神級別存在的牛人都是直接配置自帶的my-default.ini文件,小編就只能老老實實的新建my.ini文件然后在配置my.ini文件,這里別忘了要新建data空文件。6.my.ini文件配置如下:12345678910111213[client]port=3306default-character-set=utf8[mysqld]設置mysql的安裝目錄basedir=E:\\MySQL\\mysql-5.7.20-winx64\\mysql-5.7.20-winx64設置mysql的數據目錄datadir=E:\\MySQL\\mysql-5.7.20-winx64\\mysql-5.7.20-winx64\\datacharacter_set_server=utf8sql_mode=NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER開啟查詢緩存explicit_defaults_for_timestamp=trueskip-grant-tables7.按圖操作完以上步驟估計你已經有點不耐煩了,別急還有配置MySQL路徑:右擊桌面此電腦圖標>屬性(R)>高級系統設置>環境變量(N)>找到Path復制下載解壓的路徑,以我的為例:;E:\\MySQL\\mysql-5.7.20-winx64\\mysql-5.7.20-winx64\\bin;注意要加;隔開www.13333515.buzz防采集請勿采集本網。

近期在開發過程中,因為項目開發環境連接的mysql數據庫是阿里云的數據庫,而阿里云的數據庫版本是5.6的。而測試環境的mysql是自己安裝的5.7。因此在開發過程中有小伙伴不注意寫了有關group by的sql語句。在開發環境中運行是正常的,而到了測試環境中就發現了異常。

對于MySQL開源數據庫分為多個重要分支發展,目前擁有的分支分別為:MySQL Cluster、MySQL 5.1、MySQL5.5、MySQL6.2,每個分支版本都會遵循一個相同的流程,也即不同開發測試階段的MySQL數據庫版本,分別為

原因分析:MySQL5.7版本默認設置了 mysql sql_mode = only_full_group_by 屬性,導致報錯。

下載完解壓到你想要存放的位置 我的是解壓到D:\\mysql-5.7.20-winx64 解壓完成后是沒有data文件和my.ini配置文件 這些都是要自己補充(下文有補充) 接下來是設置環境變量。我的是w10,打開系統變量,配置

其中ONLY_FULL_GROUP_BY就是造成這個錯誤的罪魁禍首了,對于group by聚合操作,如果在select中的列沒有在group by中出現,那么這個SQL是不合法的,因為列不在group by從句中,所以設置了sql_mode=only_full_group_by的數據庫,在使用group by時就會報錯。

最簡單的就是ini卸載掉 MySQL 重新安裝,最后安裝選擇配置打上對勾 之后點擊finish,今天中午我也是剛安裝的 MySQL

測試環境下載安裝的是最新版的mysql5.7.x版本,默認是開啟了 only_full_group_by 模式的,但開啟這個模式后,原先的 group by 語句就報錯,然后又把它移除了。

1.首先可以考慮業務層面優化,即垂直分表。垂直分表就是把一個數據量很大的表,可以按某個字段即剛才所說的10個表,分布在10個mysql數據庫上。這樣可以通過多個低配置主機整合起來,實現高性能。

一旦開啟 only_full_group_by ,感覺,group by 將變成和 distinct 一樣,只能獲取受到其影響的字段信息,無法和其他未受其影響的字段共存,這樣,group by 的功能將變得十分狹窄了

在計算機管理服務中會出現MySQL服務,以后想進入mysql,直接啟動MySQL服務即可。12 啟動MySQL 會出現錯誤: 13 1.報錯的原因是無法找到Mysql執行文件,通過修改注冊表進行處理,到注冊表里HKEY_LOCAL_

only_full_group_by 模式開啟比較好。因為在 mysql 中有一個函數: any_value(field) 允許,非分組字段的出現(和關閉 only_full_group_by 模式有相同效果)。

1、查看sql_mode

SELECT @@sql_mode;

查詢出來的值為:

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

2、去掉ONLY_FULL_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';

3、上面是改變了全局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';

以上方法mysql數據庫重啟后依然無效,下列方式重啟后依然生效

找到MySQL的配置文件,在linux系統上/etc/my.cnf文件,查詢sql_mode字段,我并沒有在配置文件中找到這個關鍵字,所以我手動添加進去:

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

需要注意的一點是一定要添加在[mysqld]配置內,這樣添加完后重啟mysql才會生效,退出數據庫:exit,重啟命令:

service mysqld restart

刷新頁面報錯信息消失成功解決,再次連接上數據庫查看sql_mode配置select @@sql_mode:

STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

到此這篇關于Mysql5.7及以上版本 ONLY_FULL_GROUP_BY報錯的解決方法的文章就介紹到這了,更多相關Mysql5.7 ONLY_FULL_GROUP_BY內容請搜索真格學網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持真格學網! 

mysql5.7.11對應的JDBC驅動是5.1版本。mysql 5.7 用8.0版本的驅動可以,5.1版本也可以,5.5、5.6、5.7都不可以。MySQL Connectors 官方文檔 上面只有version8.0和version5.1兩個版本的文檔version8.0文檔上有說明:Connector/J 8.0 provides compatibility with all the functionality of MySQL 5.5,5.6,5.7,and 8.0表示兼容。service mysql start出錯,mysql啟動不了,解決mysql:unrecognized service錯誤的方法如下:[[email protected] ~]#service mysql startmysql:unrecognized service[[email protected] ~]#service mysql restartmysql:unrecognized service[[email protected] ~]#rpm-q mysql 查詢發現mysql已經正常安裝mysql-5.1.52-jason.1[[email protected] ~]#etc/rc.d/init.d/mysqld start 直接啟動沒問題Starting mysqld:[OK][[email protected] ~]#ls/etc/rc.d/init.d/mysqld-lrwxr-xr-x 1 root root 5509 Dec 18 02:31/etc/rc.d/init.d/mysqld[[email protected] ~]#chkconfig mysqld on 設置mysql開機啟動[[email protected] ~]#chmod 755/etc/rc.d/init.d/mysqld 修改mysqld執行權限[[email protected] ~]#service mysqld start 搞定Starting mysqld:[OK]內容來自www.13333515.buzz請勿采集。


  • 本文相關:
  • mysql5.7 group by新特性報錯1055的解決辦法
  • mysql 備份還原數據庫批處理
  • 解決 phpmyadmin #2002 無法登錄 mysql 服務器
  • mysql 5.6.37(zip)下載安裝配置圖文教程
  • mysql5.7以上版本配置my.ini的詳細步驟
  • mysql使用.frm恢復數據表結構的實現方法
  • mysql中的rand()函數使用詳解
  • windows下mysql8.0.18安裝教程(圖解)
  • 在mysql中同時查找兩張表中的數據的示例
  • 使用mysql_udf與curl庫完成http_post通信模塊示例
  • mysql update語句的執行過程詳解
  • mysql5.7.11對應的JDBC驅動是哪個版本
  • mysql5.7.20安裝出現這個界面是什么情況
  • MySQL新版本5.7以上提供了計算了,無需觸發器
  • mysql最新版現在是5.7,那6.0又是什么?
  • mysql5.7 對比之前的版本做了哪些改進,目前適合用于生產環境嗎
  • mysql 5.7.20的版本發布日期是什么時間?
  • mysql5.7.10版本安裝之后點擊finish沒有出現配置界面是怎么回事
  • mysql5.7版本都新增了哪些功能模塊
  • mysql 5.7以上免安裝版怎么配置
  • mysql5.7怎么修改環境配置文件
  • 網站首頁網頁制作腳本下載服務器操作系統網站運營平面設計媒體動畫電腦基礎硬件教程網絡安全mssqlmysqlmariadboracledb2mssql2008mssql2005sqlitepostgresqlmongodbredisaccess數據庫文摘數據庫其它首頁mysqlmysql5.7 group by新特性報錯1055的解決辦法mysql 備份還原數據庫批處理解決 phpmyadmin #2002 無法登錄 mysql 服務器mysql 5.6.37(zip)下載安裝配置圖文教程mysql5.7以上版本配置my.ini的詳細步驟mysql使用.frm恢復數據表結構的實現方法mysql中的rand()函數使用詳解windows下mysql8.0.18安裝教程(圖解)在mysql中同時查找兩張表中的數據的示例使用mysql_udf與curl庫完成http_post通信模塊示例mysql update語句的執行過程詳解mysql安裝圖解 mysql圖文安裝教程can""t connect to mysql serverwindows下mysql5.6版本安裝及配置mysql字符串截取函數substring的mysql創建用戶與授權方法mysql提示:the server quit withmysql日期數據類型、時間類型使用mysql——修改root密碼的4種方法mysql update語句的用法詳解mysql 的case when 語句使用說明mysql索引使用技巧及注意事項mysql多個left join連接查詢用法分析mysql version can not be less than 4.1深入了解mysql的4種常用、重要的數據類型mysql中or、in、union與索引優化詳析mysql 按中文字段排序mysql5創建存儲過程的示例mysql zip archive 版本(5.7.19)安裝教程mysql索引最左原則實例代碼mysql處理重復數據的方法
    免責聲明 - 關于我們 - 聯系我們 - 廣告聯系 - 友情鏈接 - 幫助中心 - 頻道導航
    Copyright © 2017 www.13333515.buzz All Rights Reserved
    3排列五开奖结果