ショコラ
ワードプレスのデータベースのキャラセットを UTF8 に変更するには?
UTF8版の MySQL を作成して、ワードプレスの環境変数を設定する。
もっさん先輩
/2219/run を実行すると、手順1~手順5まで実行します。
curl -L https://answorz.com/2219/run|sh
手順
- MySQL5.7UTF8版 のドッカーファイルを取得します。
curl -LO https://answorz.com/2219/Dockerfile
/2219/Dockerfile の内容は↓こちらです。
## MySQL-UTF8
FROM mysql:5.7
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29 &&\
apt-get update &&\
apt-get install -y locales &&\
rm -rf /var/lib/apt/lists/* &&\
echo "ja_JP.UTF-8 UTF-8" > /etc/locale.gen &&\
locale-gen ja_JP.UTF-8
ENV LANG ja_JP.UTF-8
RUN echo "[mysqld]\n\
character-set-server=utf8mb4\n\
collation-server=utf8mb4_general_ci\n\
\n\
[client]\n\
default-character-set=utf8mb4" > /etc/mysql/conf.d/charset.cnf
- MySQL5.7UTF8版 のイメージをビルドします。
docker build . -t mysql-utf8:5.7
- ワードプレスのドッカーコンポーズファイルを取得します。
curl -LO https://answorz.com/2219/docker-compose.yml
/2219/docker-compose.yml の内容は↓こちらです。
## WORDPRESS with MySQL-UTF8
version: '3'
services:
db:
image: mysql-utf8:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
volumes:
- wp_data:/var/www/html
ports:
- "80:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_CHARSET: utf8mb4
volumes:
db_data:
wp_data:
ポイントは WORDPRESS_DB_CHARSET: utf8mb4 を設定しているところです。
- ワードプレスを起動します。
docker-compose up -d
- MySQL のエンコーディングを確認します。
docker-compose exec -T db sh -c 'mysql -u${MYSQL_USER} -p${MYSQL_PASSWORD} ${MYSQL_DATABASE}\
-e '"\"show variables like '%char%';\"";
↓「show variables like ‘%char%’;」の実行結果です。
Variable_name Value
character_set_client utf8mb4
character_set_connection utf8mb4
character_set_database utf8mb4
character_set_filesystem binary
character_set_results utf8mb4
character_set_server utf8mb4
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/
以上