溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Docker中MySql5.7中only_full_group_by問題的解決方法

發(fā)布時(shí)間:2021-11-03 11:01:26 來源:億速云 閱讀:848 作者:柒染 欄目:云計(jì)算

Docker中MySql5.7中only_full_group_by問題的解決方法,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

    MySql的鏡像,默認(rèn)情況下,MySql5.7中的sql_mode含有only_full_group_by,group by語句有時(shí)候會(huì)報(bào)錯(cuò)。通過手動(dòng)修改sql_mode,那么如果刪除容器或者新建容器,就會(huì)導(dǎo)致我們手動(dòng)設(shè)置的sql_mode失效,所以自己制作一個(gè)基于mysql鏡像的鏡像,解決sql_mode含有only_full_group_by的問題。

運(yùn)行容器

    List-1

mjduan@mjduan:/opt % docker run -d -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD --name mysql1 mysql:5.7.9
5514c31a4e0bc524cee3cdcb962ac73b4fdeb1b5b32d70fa2840e9029b203a8c

進(jìn)入容器安裝vim

    List-2

mjduan@mjduan:/opt % docker exec -ti mysql1 /bin/bash
#在容器內(nèi)執(zhí)行如下命令
root@44504961189a:/opt % apt-get update
......
root@44504961189a:/opt % apt-get install vim
......

    在容器內(nèi),/etc/mysql/conf.d/下,新建.cnf文件,將配置寫入到里面,我們新建custom.cnf文件,寫入如下內(nèi)容:

    List-3

root@44504961189a:/# more /etc/mysql/conf.d/custom.cnf
[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

    退出容器,用docker commit命令由容器制作鏡像,

    List-4

mjduan@mjduan:/opt % docker commit mysql1 mysql_custom:1.0

    之后docker images就可以看到鏡像mysql_custom:1.0了。

     mysql_custom:1.0就是我們需要的,用它來啟動(dòng)容器,如下List-5

    List-5

mjduan@mjduan:/opt % docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=新密碼 --name mysql_mjduan2 mysql_custom:1.0
44504961189a45442a6b33e5945778b73bc3dd058ab9e794c56b0bbfc3e603bf

    之后進(jìn)入容器mysql_mjduan2,用mysql命令進(jìn)入mysql命令行時(shí)就會(huì)提示要root密碼了。再次查看sql_mode,就會(huì)看到sql_mode沒有only_full_group_by了。

    注意,不要讓別人拿到你的鏡像,否則通過docker inspect命令就可以看到你設(shè)置的root密碼。不過可以在創(chuàng)建容器的時(shí)候用MYSQL_ROOT_PASSWORD來設(shè)置新的root密碼。

注:

    也可以直接用Dockerfile基于mysql的鏡像進(jìn)行制作。

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI