スポンサーリンク

MySQLの文字化けの対応方法

後で文字コードを変更するのは手間がかかるので、データベース作成前に「my.iniファイルを編集する」をやっておくのが良いです。

現在の文字コード設定を確認する

アプリを開発したいスキーマに接続した状態で、下記コマンドで確認する。Valueをすべてutf8mb4にしていく。

show variables like "chara%";

my.iniファイルを編集する

C:\ProgramData\MySQL\MySQL Server 5.7

"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();

アプリを開発したいスキーマに接続した状態で、上記コマンドで確認する。

スポンサーリンク

投稿日:

Copyright© 【Spring Hack】 , 2022 All Rights Reserved Powered by AFFINGER5.