• 締切済み

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に戻すという作業をしたいだけなのですが(ローカルでバックアップも取っておきたい)、何か解決策はありませんでしょうか?

みんなの回答

  • fire--
  • ベストアンサー率49% (146/293)
回答No.1

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

o_teu
質問者

お礼

早速の回答有難うございました。 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文が崩れているような気配があります。 もう少し、細かく調べてみる必要があります。 有難うございました。

o_teu
質問者

補足

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

関連するQ&A