• ベストアンサー

既存のテーブル構造をエクスポート→他機にインポートなんてできませんか

次のようにバージョンばらばらな2つの環境があります。 【A. 外注で作って稼働中の本番環境】 FreeBSD 4.7 Apache 1.3.37 PHP 4.3.11 MySQL 4.0.25 phpMyAdmin 2.6.1 【B. わたしが今、ローカルにセットアップした環境】 WindowsXP(SP2) IIS 5.1 PHP 5.1.4 Win32 MySQL 5.0.24a phpMyAdmin 2.8.2.4 「A. 本番環境」の (1) DBのテーブル構造(varchar(8) とか、InnoDBとかNOT NULLとか) (2) DBに登録されているデータ といったあたりを「B. ローカル」に移行したいのですが、 そんなことってできますか。 なぜ、本番環境と同じものをセットアップしなかったか (=バージョンがばらばらなのか)には、一身上の事情があります。 極めてシンプルなシステムなので、Aで動くPHPファイルは Bでも動くと思います。

質問者が選んだベストアンサー

  • ベストアンサー
  • inu2
  • ベストアンサー率33% (1229/3720)
回答No.4

本番環境にphpMyAdminが使える状態ならば phpMyAdminでSQL文でエクスポートさせて そのSQL文をローカルのphpMyAdminで実行させればいいだけです テーブル構造からレコードまでごっそりとエクスポートできますよ レコード数が数千程度ならばいいんですが、数万とか数十万レコードとなると、出力されるファイルがでかすぎてphpMyAdminではめっちゃ処理が重くなりますけどね あと、気になるのが >Aで動くPHPファイルはBでも動くと思います。 ですが、PHP4シリーズを前提に作っているのであれば5じゃ動かない可能性、又は違う動きをする可能性もありますよ おまけにもう一つ、本番環境とローカル環境のMySQLのバージョンも違いますね エクスポートさせたSQLをそのままローカル環境にぶち込んだ場合、文字化けに悩む可能性もあります

litton101
質問者

お礼

inu2さん、ご教示ありがとうございました。 >SQL文でエクスポートさせて これを読んで再度phpMyAdminの画面を 隅々まで探してみたら、ありました。 CREATE TABLE文、全レコードのINSERT文を 丸ごと一本のテキストファイルとして 抽出できました。 まさにこういうのを探していたしだいです。 結局は#1さんがおっしゃるダンプということなのですね。ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (3)

回答No.3

サーバは手元にないんですか?遠隔ならばTelnetやSSHで接続すれば可能かと思いますが・・・。

litton101
質問者

補足

はい、サーバーはレンタルサーバーです。 やっぱいTelnetとかですか。。。 とにかく調べてみます、ありがとうございます。

すると、全ての回答が全文表示されます。
回答No.2

mysqldump --all-databases > 出力ファイル名 とすればダンプできますが、これはSQLコマンドではなくコマンドプロンプト上から発行するものですよ?

litton101
質問者

お礼

king_joe1006さん、たびたびのコメントありがとうございます。 >SQLコマンドではなくコマンドプロンプト上から発行するもの そういうことでしたか。失礼しました。 では、サーバー上にインストールされているMySQLに 対してはどうやって発行したらいいのでしょうか? Telnetとかになるのですか?

すると、全ての回答が全文表示されます。
回答No.1

旧機器のMySqlからデータベースを丸ごとダンプして新機器で取り込めばいいのでは?

参考URL:
http://www.bitscope.co.jp/tep/MySQL/quickMySQL.html
litton101
質問者

お礼

king_joe1006さん、早速ありがとうございました。 そんなすごいことができるのですね。 本番環境(レンタルサーバー上にあります)の hpMyAdminの、SQL発行窓から mysqldump dbnameとやってみれば、 DBの塊ファイルのダウンロードダイアログでも 出てくるのかと思いましたが #1064 - You have an error in your SQL syntax. (略) とかで、お恥かしいことに歯が立ちませんでした。

すると、全ての回答が全文表示されます。