【データベース】MySQLのテーブルがlatin1になっているのでUTF8へ変更

SQL/データベース(DB)

Windows上で稼働中のMySQL。
稼働PCの入れ替えと共にバージョンアップで移設を検討。
phpMyAdminでエクスポートするとあらゆる項目で文字化け。
調べると各テーブルの照合順序がlatin1。
単純に移行する予定だったのに、余計な作業が増えてしまった・・・

UTF8へ変更する

ひとまずテーブルをUTF8に変換する。
そしてこのテーブル参照しているプログラムの動作確認は当然必要となり、後々のプログラム改修の作業量は計り知れない。
そこはひとまず無視しないと先に進めないので、考えない事にしました(笑)

テーブルのUTF8変換作業の流れを整理します。
1:phpMyAdminで各テーブルをSQLでエクスポート
2:エクスポートされたファイルを開いて、エンコードを欧文にして保存後閉じる
3:保存したファイルを開き、エンコードをUTF8にして名前を付けて保存
(ファイル中のcreate table部分にCHARSETがあれば、utf8に変更する)

注意事項として、
2の作業でエクスポートファイルを開いた時は文字化けしていますが、エンコードを欧文で保存する時は文字化けしたまま保存する。(ファイルの中身を文字コードに合わせて変換しない事)

ここまでくれば、後は3のファイルをインポートするだけです。

まとめ

テーブルは無事にUTF8へ変更されました。
アプリケーションの動作確認したところ、やはり不具合がありました。
テーブルの変換よりも、アプリケーションの回収の方が大変です(笑)

コメント