【データベース】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へ変更されました。
アプリケーションの動作確認したところ、やはり不具合がありました。
テーブルの変換よりも、アプリケーションの回収の方が大変です(笑)

日々のITエンジニアの日常作業を発信しています。
また、様々なレビュー記事も書いていますので、ぜひご活用ください。

基本的に投稿は毎週月曜日の午前です。
2025年2月中旬より手術の為に入院をしていましたが、ようやくブログ投稿の復帰ができそうです。
4月中旬~下旬には再開予定です。

では今週も頑張っていきましょう!
ガンバー!!

SQL/データベース(DB)プログラミング

コメント