MySQL dumpファイルの互換性について。

phpMyAdminを使い、MySQL 3.23で出力したmysql.dumpをMySQL 5.1で読み込もうとしたのですが、以下のようなエラーがでてうまくいきません。

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '---------------------------------------------------------
-- Server version 3.23' at line 1

両バージョンには互換性がないのでしょうか?
うまく読み込む方法、もしくは互換性がないならdumpファイルの変換方法などを教えてください。

回答の条件
  • 1人2回まで
  • 登録:2006/12/31 22:24:23
  • 終了:2007/01/01 14:10:44

ベストアンサー

id:b-wind No.1

b-wind回答回数3344ベストアンサー獲得回数4402006/12/31 23:12:53

ポイント60pt

http://dev.mysql.com/doc/refman/4.1/ja/mysqldump.html

mysqldump で出力したSQLは基本的に上位互換です。

前のバージョンでは使用できませんが、新しいバージョンのサーバーで使用する上で問題になる事はほとんどありません。


ただし、MySQL4.1 以上だと標準が UNICODE になったせいで日本語の扱いが変わっています。

http://www.mysql.gr.jp/frame/modules/bwiki/?FAQ#content_1_40

MySQL5.1 であれば、skip-character-set-client-handshake を設定した上で、dump したファイルの先頭で SET NAMES 構文を使うと対処できるかもしれません。

以下 sjis の場合。

SET NAMES 'sjis';

また、データベース自体が latin1 等になっていると日本語が使えないのでその際は文字コードを変更して作り直す必要があります。

id:siren2

ご回答ありがとうございます。

互換性があるとわかっただけでも調べる範囲がかなり絞れました。

最終的にうまくいったのですが私がつまずいたところを書いておきます。

▲データベース単位でエクスポート/インポートしていたものを、いくつかのテーブルごとに分けて処理することでうまくいきました。データベース単位でもインポート最大サイズの1/10しかなかったのですが、なぜかうまく処理してくれませんでした……。

▲インポート成功までたどり着いたもの、おっしゃるとおり文字化けに悩まされました。これは、phpMyAdmin(with MySQL 3.23)のメインページで[Language][日本語 - Japanese (utf-8)]としエクスポート、phpMyAdmin(with MySQL 5.1)で[ファイルの文字セット][utf8]としてインポートすることで解決しました。

当初Languageはあくまでユーザーインターフェースのことで、エクスポートのエンコードまで変わるとは思いませんでした(^^;;

▲直接は関係ないのですが今回の作業はMovableType3.33-jaの引越しのためでした。上記手順でデータベースの移動は完了したものの、MovableType上で文字化けが発生してしまいました。これはmt-config.cgiにSQLSetNames 1を指定することで解消できました。

2007/01/01 14:08:05

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

  • 備忘録 - つぶやき 2009-09-02 00:02:18
    つぶやき 00:02 ペクヨンー!ペクヨンーーーー!!!! 00:03 九月になったのでジェダイ騎士のあれそれを妄想する作業しながら眠るとするぜ。書き途中のこの妄想は放置だ!放置だ!放置だ
「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません