ダウンロードせずにSQLデータベースをエクスポート/インポートする

ダウンロードせずにSQLデータベースをエクスポート/インポートする

最近、サーバーを別のウェブホスティング プロバイダーのサーバーに変更する必要があります。そのために、MySQL データベースのサイズが大きすぎて、自分のアクセス権ではダウンロードおよびアップロードできないことがわかりました。

phpMyAdmin を使用して、データをダウンロードせずに現在の MySQL サーバーからエクスポートし、新しい MySQL サーバーに直接インポートすることはできますか?

答え1

「私が持っているアクセス権」というフレーズは興味深いです。帯域幅に制限がありますか? スペースに制限がありますか? シェルに制限がありますか? それを説明すると、特定のパラメータに適したソリューションを明確にするのに役立ちます。

あるマシンから別のマシンにDBを取得するには、持っているファイルを転送するには、いくつかの方法があります。

1.) mysql ディレクトリ全体をコピーします (もちろん、mysql を停止した後)

rsync -a メインホスト:/var/lib/mysql/ サブホスト:/var/lib/mysql/

2.) mysqldump を使用してデータベースをファイルにダンプし、そのファイルを転送します。

メインサーバーの場合:

mysqldump > [local_file]
rsync [local_file] secondary:host

新しいサーバーの場合:

mysql < [local_file]

3.) スニーカーネットは、どちらか一方または両方に物理的にアクセスできる場合に選択肢となる可能性があります。

帯域幅が制限されている場合は、rsync に --bwlimit スイッチを指定して転送のレートを制限できます。スペースが制限されている場合は、さらに大きな問題が発生する可能性があります。

答え2

これは phpMyAdmin を使用しないため、あなたのケースには当てはまらない可能性があります。

MySQL を使用しており、シェルにアクセスできる場合は、パイプを使用して mysqldump を使用することを検討してください。

http://www.cyberciti.biz/faq/mysqldump-pipe-mysql-出力と入力/

両方のサーバーのテーブルがロックされる可能性があることに注意してください。また、SSH を使用しない場合、データはプレーン テキストとして送信されます。私は高速のプライベート ネットワーク リンクでこの方法を頻繁に使用しています。

関連情報