後で文字コードを変更するのは手間がかかるので、データベース作成前に「my.iniファイルを編集する」をやっておくのが良いです。
Contents
現在の文字コード設定を確認する
アプリを開発したいスキーマに接続した状態で、下記コマンドで確認する。Valueをすべてutf8mb4にしていく。
show variables like "chara%";
my.iniファイルを編集する
"character-set"で検索してヒットする箇所を下記のように編集していく。
# default-character-set=
default-character-set=utf8mb4
# character-set-server=
character-set-server=utf8mb4
MySQLを再起動する
タスクマネージャーのサービスタブを押す。
サービスの中からMySQLを選択して、「サービスの再起動」を押す。
「show variables like "chara%"」で文字コードを確認すると、character-set-serverはutf8mb4になった。
character_set_databaseは作成したときに未指定だったため、デフォルト値となっていたlatin1になったままである。
この状態で、データベース(スキーマ)を作り直せば、character_set_database=utf8mb4で作成される。
既にあるデータベース(スキーマ)の文字コードを変更する
データベース(スキーマ)を作り直したくない場合は、下記要領で変更する。
ALTER DATABASE happy_library CHARACTER SET = utf8mb4
既にあるテーブルの文字コードを変更する
データベース(スキーマ)の文字コードを変更しても、既に存在するテーブル等は文字コードがデフォルト(latin1)のままであるため、文字化けが続く可能性が高いです。
その場合は、下記SQLでテーブルごとに文字コードを変更します。
alter table テーブル名 default character set utf8mb4;
MySQLの現在のバージョンを確認する
SELECT VERSION();
アプリを開発したいスキーマに接続した状態で、上記コマンドで確認する。