站長資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        一文詳解MySQL設(shè)置only_full_group_by報(bào)錯(cuò)問題

        一文詳解MySQL設(shè)置only_full_group_by報(bào)錯(cuò)問題

        開發(fā)環(huán)境連接的 mysql5.6,而測試環(huán)境是 mysql5.7。開發(fā)中有小伙伴寫了有關(guān) group bysql 語句。在開發(fā)環(huán)境中運(yùn)行是正常的,而到了測試環(huán)境中就發(fā)現(xiàn)了異常。

        原因分析:MySQL5.7 版本默認(rèn)設(shè)置了 mysql sql_mode = only_full_group_by 屬性,導(dǎo)致報(bào)錯(cuò)。

        其中 ONLY_FULL_GROUP_BY 就是造成這個(gè)錯(cuò)誤的罪魁禍?zhǔn)琢耍谶@種嚴(yán)格模式下,對于 group by 聚合操作,若在 select 中的列沒有在group by 中出現(xiàn),那么這個(gè) SQL 就是不合法的。因?yàn)殚_發(fā)寫的 sql 中,select 列不在 group by 從句中,在使用 group by 時(shí)就會報(bào)錯(cuò)。

        測試環(huán)境下載安裝的是最新版的 mysql5.7.x 版本,默認(rèn)是開啟了 only_full_group_by 模式的。

        1. 查看 sql_mode

        SELECT` `@@sql_mode;
        登錄后復(fù)制

        查詢出來的值為:

        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,重新設(shè)置值。

        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'``;
        登錄后復(fù)制

        3. 上面是改變了全局sql_mode,對于新建的數(shù)據(jù)庫有效。

        對于已存在的數(shù)據(jù)庫,則需要在對應(yīng)的數(shù)據(jù)下執(zhí)行

        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'``;
        登錄后復(fù)制

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

        找到 MySQL 的配置文件,在 linux 系統(tǒng)上 /etc/my.cnf 文件,查詢 sql_mode 字段,我并沒有在配置文件中找到這個(gè)關(guān)鍵字,所以我手動添加進(jìn)去:

        sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
        登錄后復(fù)制

        需要注意的一點(diǎn)是一定要添加在 [mysqld] 配置內(nèi),這樣添加完后重啟mysql 才會生效,退出數(shù)據(jù)庫:exit,重啟命令:

        service mysqld restart  #lnmp重啟mysql lnmp restart mysql
        登錄后復(fù)制

        刷新頁面報(bào)錯(cuò)信息消失成功解決,再次連接上數(shù)據(jù)庫查看 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

        到此這篇關(guān)于 Mysql5.7 及以上版本 ONLY_FULL_GROUP_BY 報(bào)錯(cuò)的解決方法的文章就介紹到這了,

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
        主站蜘蛛池模板: 精品国产一区二区三区色欲| 99久久人人爽亚洲精品美女| 99久久99久久精品国产| 少妇人妻精品一区二区三区| 国产精品自在在线午夜福利| 久久久国产精品网站| 久久精品国产亚洲AV麻豆网站| 欧美精品色婷婷五月综合| 99久久国产综合精品五月天喷水| 国产办公室秘书无码精品99| 亚洲av成人无码久久精品| 无码精品人妻一区二区三区免费 | 国产一精品一AV一免费| 亚洲AV永久无码精品一区二区国产| 91热成人精品国产免费| 欧美精品一本久久男人的天堂| 日产欧美国产日韩精品| 亚洲国产精品无码久久SM| 香蕉国产精品麻豆亚洲欧美日韩精品自拍欧美v国 | 亚洲国模精品一区| 欧美精品黑人粗大视频| 久久亚洲AV永久无码精品| 国产乱子伦精品免费视频| 国产99久久九九精品无码| 亚洲国产精品久久久久久| 日韩精品免费在线视频| 青青青青久久精品国产h| 欧美精品在线一区| 欧美精品色婷婷五月综合| 四虎国产成人永久精品免费| 精品无人区无码乱码毛片国产| 国产av无码专区亚洲国产精品| 亚洲综合精品香蕉久久网97| 中文字幕精品视频| 国产91精品黄网在线观看| 国产精品自在线拍国产第一页| 国自产精品手机在线观看视频| 精品久久久久久99人妻| 日韩欧美国产精品第一页不卡| 亚洲精品456播放| 亚洲精品国产成人片|