站長資訊網
        最全最豐富的資訊網站

        一文詳解MySQL設置only_full_group_by報錯問題

        一文詳解MySQL設置only_full_group_by報錯問題

        開發環境連接的 mysql5.6,而測試環境是 mysql5.7。開發中有小伙伴寫了有關 group bysql 語句。在開發環境中運行是正常的,而到了測試環境中就發現了異常。

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

        其中 ONLY_FULL_GROUP_BY 就是造成這個錯誤的罪魁禍首了,在這種嚴格模式下,對于 group by 聚合操作,若在 select 中的列沒有在group by 中出現,那么這個 SQL 就是不合法的。因為開發寫的 sql 中,select 列不在 group by 從句中,在使用 group by 時就會報錯。

        測試環境下載安裝的是最新版的 mysql5.7.x 版本,默認是開啟了 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  #lnmp重啟mysql lnmp restart mysql
        登錄后復制

        刷新頁面報錯信息消失成功解決,再次連接上數據庫查看 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 報錯的解決方法的文章就介紹到這了,

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 92精品国产自产在线观看| 91精品国产91久久久久久| 国产精品欧美一区二区三区不卡 | 日韩精品无码一区二区三区不卡 | 亚洲国产精品专区在线观看| 欧美大片日韩精品| 久久国产欧美日韩精品| 亚洲AV永久无码精品一区二区 | 日韩精品无码久久一区二区三| 久久精品草草草| 久久国产精品99精品国产| 亚洲国产精品日韩| 久久精品国产清自在天天线| 久久青草国产精品一区| 成人国内精品久久久久一区| 少妇伦子伦精品无码STYLES| 无码AV动漫精品一区二区免费| 国产精品综合久成人| 国产高清国内精品福利99久久| 精品亚洲一区二区| 91精品国产91久久综合| 国产精品无码无在线观看| 少妇精品无码一区二区三区 | 欧美日韩专区麻豆精品在线| 国产精品成人观看视频网站| 亚洲国产精品成| 久久亚洲国产欧洲精品一| 久久国产精品-久久精品| 国产精品毛片久久久久久久| 99精品免费视频| 精品久久一区二区| 国产亚洲婷婷香蕉久久精品| 99久久精品国产麻豆| 2048亚洲精品国产| 九九99精品久久久久久| 九九热精品在线| 精品在线免费观看| 亚洲日韩国产精品第一页一区| 99久久精品免费国产大片| 中文精品久久久久国产网址| 亚洲精品欧美综合在线|