問題:
根據(jù) docker hub mysql 提供的示例,在啟動容器時可以通過 —character-set-server 和 –collation-server 選項指定字符集。然而,實際啟動容器后發(fā)現(xiàn)字符集并沒有發(fā)生變化。
解答:
無法通過 docker run 命令直接指定 mysql 字符集。一種可行的方法是使用自定義配置文件:
在宿主機創(chuàng)建名為 character_set.cnf(后綴必須為 .cnf)的文件,并添加以下內(nèi)容:
[mysqld] character-set-server = utf8mb4 [client] default-character-set = utf8mb4 [mysql] default-character-set = utf8mb4
登錄后復(fù)制
然后,啟動容器時將容器的 /etc/mysql/conf.d 目錄掛載到該配置文件所在的目錄:
docker run --name mysql -v /path/to/cusotm:/etc/mysql/conf.d -e mysql_root_password=my-secret-pw -d mysql:tag
登錄后復(fù)制
啟動后,進入容器并檢查字符集設(shè)置:
show variables like '%char%';
登錄后復(fù)制
字符集應(yīng)已正確設(shè)置。