以前爲了節省安裝時間,因此用官方mysql docker鏡像啓動mysql。
經過mysql
$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d daocloud.io/mysql:tag
some-mysql 指定了該容器的名字,my-secret-pw 指定了 root 用戶的密碼,tag 參數指定了你想要的 MySQL 版本sql
這樣數據是沒有持久化的 因此在啓動參數中須要掛載本地目錄docker
$ docker run --name some-mysql -v /my/own/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d daocloud.io/mysql:tag
因而這樣數據庫一直跑着,可是因爲最近程序須要支持emoji表情,不得不將mysql的字符集更改。數據庫
這時候就能夠掛載自定義配置文件,官方文檔說明code
當 MySQL 服務啓動時會以 /etc/mysql/my.cnf 爲配置文件,本文件會導入 /etc/mysql/conf.d 目錄中全部以 .cnf 爲後綴的文件。這些文件會拓展或覆蓋 /etc/mysql/my.cnf 文件中的配置。所以你能夠建立你本身須要的配置文件並掛載至 MySQL 容器中的 /etc/mysql/conf.d 目錄。
因此最簡單改變數據庫配置的方式就是在宿主機上新建配置文件,改爲utf8mb4server
[client] default-character-set=utf8mb4 [mysqld] character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci [mysql] default-character-set=utf8mb4
隨後將文件複製到相應docker容器文件夾下ci
docker cp /home/my.cnf(宿主機文件路徑) [容器id]:/etc/mysql/mysql.conf.d
最後使用docker stop和start命令重啓容器就實現了加載自定義配置。unicode