- - PR -
MySQL3のデータがMySQL5に移行できない(MT4)
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 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 よろしくお願いします。 | ||||
|
投稿日時: 2008-04-23 11:38
MySQL4.1から文字コードの自動変換処理が追加されています。
取り出したDUMPの文字コードと実行しているクライアントの文字コードが 違う為だと思われます。 下記の設定を追加すれば自動変換処理は行われないので 正常に表示できると思います。 [mysqld] skip-character-set-client-handshake 私は4.1以上のMYSQLは必ず入れています。 自動変換が何故デフォルトになったんでしょうかね・・ | ||||
|
投稿日時: 2008-04-24 11:01
回等ありがとうございます。
試してみたのですが、表示される文字は変わったのですが、やはり文字化けのままです。 --default-character-set=ujis とかしているのがまずいのでしょうか・・ | ||||
|
投稿日時: 2008-04-25 13:09
mysqlのコマンドラインで「status;」を実行をして現在の文字コード設定が全てujisになっているか確認をお願いします。
ujisでないのがあればiniファイルで設定後再度実行をして見て下さい。 | ||||
|
投稿日時: 2008-04-25 13:19
status;の結果はmysql3,5共に全てujisでした。
私の方で調べてみたのですが、MT4で使うデフォルトの文字コードはUTF-8で、 現状動いているmysql3はutf8に対応していませんでした。 (show variables like "char%"; でutf8が表示されません。) バイナリーとして入ってしまっていて、違うDBで復元不可能なのでしょうか? | ||||
|
投稿日時: 2008-04-25 16:02
SET NAMES ujisとコマンドプロンプトで入力後
mysql3のデータをインポートして selectを発行してみて下さい。 これでダメならうーん。
きちんと取得できていれば復元は可能です。 | ||||
|
投稿日時: 2008-04-26 04:07
回答ありがとうございます。
SET NAMES ujisを試してみましたが、ダメでした。 今日、他の方に助けて頂いたのですが、以下手順です。 mysql3のmysqldumpの設定がujisになっているのをコメントアウトして、 mysqldumpを実行し、バイナリーで取得できたデータを(nkfで確認したらbinaryでした) さくらエディタで開くとデータが文字化けしなかったので、eucで保存。 eucのデータをmysql5にインポートしたら記事が文字化けしなくなりました。 しかしMT4の管理画面自体が文字化けしてしまったので、 さくらエディタでeucをさらにutf8にして保存し、mysql5のcharsetをUTF-8に設定変更して 起動>インポート とすると正常に表示されるようになりました。 本当にありがとうございました。 | ||||
|
投稿日時: 2008-04-28 10:14
mysqldumpの問題でしたか、気づきませんでした・・。
あと、MT4の管理画面で文字化けしてutf8にされたの事ですが MT4の文字コードを変更すればujisでも動作はしますよ。 しかし、MT4の推奨がどうもutf8のようですので問題なければutf8の方がいいと思います。 結局役に立てず申し訳なかったです・・ |
1