- PR -

MySQL3のデータがMySQL5に移行できない(MT4)

1
投稿者投稿内容
未記入
大ベテラン
会議室デビュー日: 2007/07/03
投稿数: 136
投稿日時: 2008-04-22 17:35
MobavleType4でMySQL3を使用してサイト作成中ですが、MySQL4以上でないとサポートされていない事がわかり、MySQL5に切り替える事になりました。
(MySQL3とMySQL5はポートを変えて同時稼動です)
下記手順でデータの移行を行ったのですが、MT4の管理画面で記事のタイトルが文字化けし、記事の内容が消えてしまいます。移行後、mysql5のダンプを取りましたが、データサイズが半分になっています。
うまく移行する方法はございませんでしょうか?

mysql3のバックアップ
# mysqldump -a --default-character-set=ujis -uroot -ppassword testdb > testdb.dmp

mysql5でDB作成
# /usr/local/mysql5/bin/mysqladmin --port=3307 -u root -ppassword create testdb

データの流し込み
# /usr/local/mysql5/bin/mysql --port=3307 --default-character-set=ujis -uroot -ppassword testdb < testdb.dmp

よろしくお願いします。
まよんが
常連さん
会議室デビュー日: 2007/05/20
投稿数: 22
投稿日時: 2008-04-23 11:38
MySQL4.1から文字コードの自動変換処理が追加されています。
取り出したDUMPの文字コードと実行しているクライアントの文字コードが
違う為だと思われます。

下記の設定を追加すれば自動変換処理は行われないので
正常に表示できると思います。

[mysqld]
skip-character-set-client-handshake

私は4.1以上のMYSQLは必ず入れています。
自動変換が何故デフォルトになったんでしょうかね・・
未記入
大ベテラン
会議室デビュー日: 2007/07/03
投稿数: 136
投稿日時: 2008-04-24 11:01
回等ありがとうございます。

試してみたのですが、表示される文字は変わったのですが、やはり文字化けのままです。
--default-character-set=ujis とかしているのがまずいのでしょうか・・
まよんが
常連さん
会議室デビュー日: 2007/05/20
投稿数: 22
投稿日時: 2008-04-25 13:09
mysqlのコマンドラインで「status;」を実行をして現在の文字コード設定が全てujisになっているか確認をお願いします。
ujisでないのがあればiniファイルで設定後再度実行をして見て下さい。
未記入
大ベテラン
会議室デビュー日: 2007/07/03
投稿数: 136
投稿日時: 2008-04-25 13:19
status;の結果はmysql3,5共に全てujisでした。

私の方で調べてみたのですが、MT4で使うデフォルトの文字コードはUTF-8で、
現状動いているmysql3はutf8に対応していませんでした。
(show variables like "char%"; でutf8が表示されません。)
バイナリーとして入ってしまっていて、違うDBで復元不可能なのでしょうか?
まよんが
常連さん
会議室デビュー日: 2007/05/20
投稿数: 22
投稿日時: 2008-04-25 16:02
SET NAMES ujisとコマンドプロンプトで入力後
mysql3のデータをインポートして
selectを発行してみて下さい。

これでダメならうーん。

引用:

バイナリーとして入ってしまっていて、違うDBで復元不可能なのでしょうか?



きちんと取得できていれば復元は可能です。

未記入
大ベテラン
会議室デビュー日: 2007/07/03
投稿数: 136
投稿日時: 2008-04-26 04:07
回答ありがとうございます。
SET NAMES ujisを試してみましたが、ダメでした。

今日、他の方に助けて頂いたのですが、以下手順です。

mysql3のmysqldumpの設定がujisになっているのをコメントアウトして、
mysqldumpを実行し、バイナリーで取得できたデータを(nkfで確認したらbinaryでした)
さくらエディタで開くとデータが文字化けしなかったので、eucで保存。
eucのデータをmysql5にインポートしたら記事が文字化けしなくなりました。
しかしMT4の管理画面自体が文字化けしてしまったので、
さくらエディタでeucをさらにutf8にして保存し、mysql5のcharsetをUTF-8に設定変更して
起動>インポート とすると正常に表示されるようになりました。

本当にありがとうございました。
まよんが
常連さん
会議室デビュー日: 2007/05/20
投稿数: 22
投稿日時: 2008-04-28 10:14
mysqldumpの問題でしたか、気づきませんでした・・。

あと、MT4の管理画面で文字化けしてutf8にされたの事ですが
MT4の文字コードを変更すればujisでも動作はしますよ。

しかし、MT4の推奨がどうもutf8のようですので問題なければutf8の方がいいと思います。

結局役に立てず申し訳なかったです・・
1

スキルアップ/キャリアアップ(JOB@IT)