摘要:使用官方的啟用后,在進(jìn)行漢字操作時(shí),會(huì)出現(xiàn),原因是由于官方的鏡像,默認(rèn)采用編碼。本文將闡述如何在官方的基礎(chǔ)上,使其支持編碼,進(jìn)而支持漢字的存儲(chǔ)的。解決方案新建配置文件,并為其增加編碼設(shè)置。
使用官方的docker啟用mysql56后,在進(jìn)行漢字操作時(shí),會(huì)出現(xiàn)Incorrect string value: ,原因是由于官方的docker鏡像,默認(rèn)采用latin1編碼。本文將闡述如何在官方docker的基礎(chǔ)上,使其支持utf8編碼,進(jìn)而支持漢字的存儲(chǔ)的。
解決思路官方的docker在自定義一些配置時(shí),最多是采用環(huán)境變量的方法,于是我們來到mysql的官方docker,并點(diǎn)擊查看環(huán)境變量的鏈接,最終未發(fā)現(xiàn)配置編碼的地方。于是,我們google到如下文章:使用增加配置文件的方法來實(shí)現(xiàn)自定義默認(rèn)編碼?;貜?fù)的牛人給出的解決方案是:自定義一個(gè)配置字符編碼的配置文件,并將其掛載到mysql容器相應(yīng)的位置上。
其實(shí),我們?cè)谑褂?b>nginx的docker時(shí),自定義的配置文件也是采用的相同的方式:自定義一個(gè)配置文件,然后將其掛載到對(duì)應(yīng)默認(rèn)配置文件夾中。比如mysql的為:/etc/mysql/conf.d/。如果你使用的是baidu,也是可以找到類似的更改配置的文章的,但大多數(shù)是告訴我們啟動(dòng)了容器以后,如何進(jìn)入容器進(jìn)行更改的。其實(shí)原理是一樣的,都是去定義配置文件。只是如果我們將配置文件進(jìn)行掛載的方式會(huì)更加的簡(jiǎn)單、靈活、易維護(hù)些。
解決方案新建custom.cnf配置文件,并為其增加編碼設(shè)置。然后將其掛載到容器的默認(rèn)配置文件夾中。
[mysqld] character-set-server = utf8 collation-server = utf8_unicode_ci skip-character-set-client-handshake
volumes: - ./custom.cnf:/etc/mysql/conf.d/custom.cnf
最后,強(qiáng)制的刷新一下配置信息:刪除原容器,重新建立容器。
docker container ps
docker container rm
docker-compose up -d
歡迎加入:河北工業(yè)大學(xué)夢(mèng)云智開發(fā)團(tuán)隊(duì)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/27350.html
摘要:最近一個(gè)項(xiàng)目要上線了需要搭服務(wù)器本來是交給同學(xué)搭的結(jié)果遇到了大坑還得自己來今天把這些坑記一下服務(wù)器有好幾臺(tái)都是兩臺(tái)一臺(tái)項(xiàng)目需要的環(huán)境是在上的折騰關(guān)于的折騰我通過官網(wǎng)下載的源安裝的在的系統(tǒng)上執(zhí)行沒有遇到任何依賴錯(cuò)誤于是順利安裝然后啟動(dòng)服務(wù) 最近一個(gè)項(xiàng)目要上線了,需要搭服務(wù)器,本來是交給同學(xué)搭的,結(jié)果遇到了大坑,還得自己來,今天把這些坑記一下. 服務(wù)器有好幾臺(tái),都是CentOS6.X,兩臺(tái)...
閱讀 1792·2021-11-25 09:43
閱讀 15449·2021-09-22 15:11
閱讀 2642·2019-08-30 13:19
閱讀 2023·2019-08-30 12:54
閱讀 1826·2019-08-29 13:06
閱讀 938·2019-08-26 14:07
閱讀 1622·2019-08-26 10:47
閱讀 3044·2019-08-26 10:41