ワードプレスのデータベースのキャラセットを UTF8 に変更するには?

ショコラ
ショコラ

ワードプレスのデータベースのキャラセットを UTF8 に変更するには?

UTF8版の MySQL を作成して、ワードプレスの環境変数を設定する。

もっさん先輩
もっさん先輩

/2219/run を実行すると、手順1~手順5まで実行します。

curl -L https://answorz.com/2219/run|sh

手順

  1. 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
  1. MySQL5.7UTF8版 のイメージをビルドします。
docker build . -t mysql-utf8:5.7
  1. ワードプレスのドッカーコンポーズファイルを取得します。
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 を設定しているところです。

  1. ワードプレスを起動します。
docker-compose up -d
  1. 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/

以上

Scroll to Top