こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

phpMyAdminからphpMyAdminへのデータ移行

レンタルサーバーにあるMySQLのデータをphpMyAdminからエクスポートし、ローカルホストにあるMySQLにphpMyAdminのSQLでデータをインポートしようとしています。

方法は以下の通りです。
レンタルサーバーのphpMyAdminを開き、エクスポートしたいデータベースを選択します。
エクスポートを開き、
全選択
SQL
構造:
「DROP TABLE」を追加
「IF NOT EXISTS」を追加
「AUTO_INCREMENT」値を追加
逆クオートでテーブル名やフィールド名を囲む
データ:
完全な INSERT 文を作成する
バイナリフィールドは 16 進数を使用する
エクスポート形式:INSERT
ファイルで保存する
ファイル名テンプレート:__DB__
テンプレートを覚える
圧縮無し
SJISエンコーディングへ変換する

で、実行します。

8.43 MB (8,846,019 バイト)37602行
からなる膨大なsqlファイルが作成されます。

次にローカルホストのphpMyAdminを開き、インポートしたいデータベースを選択します。
SQLを開き、
参照より、エクスポートしたsqlファイルを読み込み
圧縮:Autodetect
エンコーディングnon

で、実行します。

実行の結果、
「SQLクエリー無し」
のメッセージで、SQLが終了します。
もちろん、データベースは移行されていません。

レンタルサーバーのMySQLをローカルのAccessでデータ加工し、レンタルサーバーのMySQLに戻すという作業をしたいだけなのですが(ローカルでバックアップも取っておきたい)、何か解決策はありませんでしょうか?

投稿日時 - 2005-10-04 19:54:25

QNo.1692213

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

もしかすると、sql文の先頭のほうに use データベース名;
とかありませんか。
そしてローカルのデータベースと名前が違っているならば
ローディングされません。

投稿日時 - 2005-10-04 20:50:39

補足

調査をしましたが、不正なデータによってsql文が崩れているものもありましたが、
他にも問題がありそうです。
エクスポートするたびにはじかれる場所が変わっているようです。
と言うのは、
正常にsqlが動作するまでレコードを削除します。
次は削除した前半のsqlで実行してみます。
結果はもちろんはじかれるのですが、
削除した前半のsqlから頭の方のレコードを少し削除して実行する成功します。
正常にsqlが動作するところまで削っているのだから、
残りの少なくとも一番最後のレコードは不正なレコードのはずだと思うのですが、
そうではないようです。
逆に削除した前半のsqlから頭の方のレコードで実行してみても成功したりするのです。

もう、完全にお手上げ状態です。

投稿日時 - 2005-10-05 19:15:35

お礼

早速の回答有難うございました。
sql文を調べてみましたが、
use データベース名;
といった文はありませんでした。
sql文は全てが

DROP TABLE IF EXISTS テーブル名;
CREATE TABLE IF NOT EXISTS テーブル名(
カラム名 型 NOT NULL default ディフォルト値,
      もしくは
カラム名 型 default NULL,
 以下続く
PRIMARY KEY (カラム名)
) TYPE=MyISAM; もしくは ) TYPE=MyISAM AUTO_INCREMENT=数値

INSERT INTO テーブル名(カラム名) VALUES (データ);
 以下続く

の繰り返しです。

多いもので、各テーブルのINSERT INTO 文は23383件あるものもあります。

sql文を見て気づいたのですが、カラムに不正な値があり、sql文が崩れているような気配があります。
もう少し、細かく調べてみる必要があります。
有難うございました。

投稿日時 - 2005-10-05 11:01:04

あなたにオススメの質問