2016年8月19日金曜日

MySQL Migration Toolkitの文字化け対応メモ

とある、作業でOracleからMySQLに移行してみることがあったのです。
で、ググると
MySQL Migration Toolkit

OracleからMySQLへのデータ移行手順
でサクサクとデータ移行できる模様。

んでまぁやってみたらテーブルはできているのですが、データは入ってない。
なぜに?と思ったら文字コードの不具合であった。

んでいろいろまとめ。
MySQLの文字コード
mysql> show variables like 'character_set%';
+--------------------------+---------------------------------------------------------+
| Variable_name            | Value     |
+--------------------------+---------------------------------------------------------+
| character_set_client     | cp932     |
| character_set_connection | cp932     |
| character_set_database   | utf8      |
| character_set_filesystem | binary    |
| character_set_results    | cp932     |
| character_set_server     | utf8      |
| character_set_system     | utf8      |
| character_sets_dir       | C:\Program Files\MySQL\MySQL Server 5.7\share\charsets\ |
+--------------------------+---------------------------------------------------------+
8 rows in set, 1 warning (0.05 sec)

特に何もせず、デフォルトでインストールしたのでこの結果。

Oracleの文字コード
SQL> SELECT VALUE FROM NLS_DATABASE_PARAMETERS 
  2  WHERE PARAMETER='NLS_CHARACTERSET'
  3  ;

VALUE
--------------------------------------------------------------------------------
JA16SJIS

MySQL Migration Toolkit注意点
1.javaインストール

javaloaderの部分をOKにする場合、javaの5を入れないといけなかった。Toolkitのバージョンにもよるのでしょうが、じゃぁ最新版のjava8入たれ!で駄目だったのでやっぱりjava5が必要だった。
具体的に入れたファイルはjre-1_5_0_22-windows-i586-p.exe

2.Orcale接続する為に「ojdbc14.jar」の取得

このoracle接続のダイアログが出ずにどうしたもんかと。で、ここでojdbc14.jarをコンボボックスから読み込ませるとできました。
ojdbc14.jarはググってもってきます。つーかデフォルトで入れとけと思うが。

3.文字コードの設定

ここ!ここの画面で文字コードを設定する!!
Oracleの方をマルチランゲージにしてテキストボックスに文字コードを記入(今思うと下のユーザデファインを選択するんじゃねーか?)
MySQLの方はマルチランゲージにして・・・utf8にしかできないやんけ。
もしかしたらMySQLのDBの文字コードをいじってしまうとどうにもならんかったかもしれない。

んであとはNEXT実行、NEXT実行で完了。
成功!

中身は見せられないけどちゃんと成功してましたよ!
最初は初期ユーザのsccotとかに小さいレコード作って試す方がいいかもね。

0 件のコメント:

コメントを投稿