MySQLのload data infile文で文字化けする場合の対策

Pocket

システムおよびデータベースの文字コードはすべて utf-8 を使用する前提とします。

既存のシステムからデータを移行するために「load data infile」文を使用すると、読み込んだデータが文字化けしてしまう場合があります。

原因は、「character_set_database」が utf-8 に設定されていないためです。
「load data infile」文は「character_set_database」の設定に従います。

「character_set_database」の設定を確認します。

以上のように出力された場合、「character_set_database」の設定は「latin1」となっているため、「utf8」に変更します。

もう一度「character_set_database」の設定を確認します。

「character_set_database」が「utf8」に変更されたため、文字化けを回避できます。

関連記事:PostgreSQL(EUC_JP)からMySQL(UTF-8)へのデータ移行