使用官方的docker
啓用mysql56
後,在進行漢字操做時,會出現Incorrect string value:
,緣由是因爲官方的docker鏡像,默認採用latin1
編碼。本文將闡述如何在官方docker
的基礎上,使其支持utf8
編碼,進而支持漢字的存儲的。html
官方的docker
在自定義一些配置時,最可能是採用環境變量的方法,因而咱們來到mysql
的官方docker
,並點擊查看環境變量的連接,最終未發現配置編碼的地方。因而,咱們google
到以下文章:使用增長配置文件的方法來實現自定義默認編碼。回覆的牛人給出的解決方案是:自定義一個配置字符編碼的配置文件,並將其掛載到mysql
容器相應的位置上。mysql
其實,咱們在使用nginx
的docker
時,自定義的配置文件也是採用的相同的方式:自定義一個配置文件,而後將其掛載到對應默認配置文件夾中。好比mysql
的爲:/etc/mysql/conf.d/
。若是你使用的是baidu
,也是能夠找到相似的更改配置的文章的,但大多數是告訴咱們啓動了容器之後,如何進入容器進行更改的。其實原理是同樣的,都是去定義配置文件。只是若是咱們將配置文件進行掛載的方式會更加的簡單、靈活、易維護些。nginx
新建custom.cnf
配置文件,併爲其增長編碼設置。而後將其掛載到容器的默認配置文件夾中。sql
[mysqld] character-set-server = utf8 collation-server = utf8_unicode_ci skip-character-set-client-handshake
volumes: - ./custom.cnf:/etc/mysql/conf.d/custom.cnf
最後,強制的刷新一下配置信息:刪除原容器,從新創建容器。 docker container ps
docker container rm <containerName>
docker-compose up -d
docker
歡迎加入:河北工業大學夢雲智開發團隊