web-dev-qa-db-ja.com

データベース全体を別のサーバーデータベースにコピーする方法

現在、MySQLバックエンドを備えたWindowsアプリケーションに取り組んでいます。次に、古いデータベース構造とデータを新しいデータベースサーバーにコピーします。

MySQLワークベンチを使用してこの問題を解決するにはどうすればよいですか?

ありがとうございました!

27
Vinoth
  1. MySQL Workbenchを開く
  2. 古いサーバーの接続を作成します(作成していない場合)。
  3. 新しいサーバーの接続を作成します(作成していない場合)。
  4. サーバー管理に移動し、インポート/エクスポートの管理をクリックします
  5. 古いサーバーを選択
  6. [ディスクにエクスポート]タブですべてのスキーマを選択します
  7. オプションで[自己完結型ファイルにエクスポート]を選択し、完了するまで待ちます
  8. サーバー管理に戻り、[インポート/エクスポートの管理]をクリックします
  9. 新しいサーバーを選択
  10. 「ディスクからインポート」に切り替え
  11. 「自己完結型ファイルからインポート」をクリックします

これは、MySQL Workbechのみの方法です。開発から本番へのシナリオのように、新しいサーバーにインストールされていない場合があります。このように、mysqlimportユーティリティを実行する必要があります。

36
Alberto León

最初にエクスポートとインポートを行わずにデータベースを直接コピーするには、 MySQL Utilities コマンドを使用できます mysqdbcopy

mysqldbcopy --source=root:root@localhost --destination=root:root@localhost world:world_clone

このコマンドは、Windows cmdまたはMySQL Utilities Consoleのいずれかで実行できます。

2
agold

phpmyadminをインストールした場合は、次の手順を使用できます。

  1. ソースサーバーのphpmyadminで、「Export "関数を使用して、

a)エクスポート方法で、"カスタム-可能なすべてのオプションを表示"を選択します。

b)[フォーマット固有のオプション]で、[構造とデータ]が選択されていることを確認します。

c)"オブジェクト作成オプション"で、 "ADD CREATE DATABASE/USEステートメント"もマークされていることを確認してください。

SQLファイルをエクスポートします。

  1. scpソースサーバーからターゲットサーバーにエクスポートされたファイル

  2. ターゲットサーバーのphpmyadminで、 "Import"関数を使用して、SQLファイルをデータベースにインポートします。インポートプロセス中に選択する必要のあるカスタムオプションはありませんでした。

1
Christine

中間のエクスポート/ダンプファイルを作成せずに、あるサーバーから別のサーバーに(ローカルサーバーでも)データベースを直接コピーするには、MySQL Workbench内でウィザードを使用してこれを行うことができます。 Database-> Migration Wizardに移動します。 (編集: docs

そこから、以前に接続リストに保存した場合は、ソース接続と宛先接続を選択できます。または、その場で新しい接続を作成できます(チェックボックスをオンにして、接続リストに追加してください)。
また、データベースの種類を選択するか、それらの汎用バージョンを選択し(それが何と呼ばれるか覚えていない)、使用しているデータベースサーバーの種類を把握させます。通常、MariaDBはMySQLの「バイナリドロップイン置換」として設計されているため、MySQLまたはMariaDBデータベースのいずれかに対してMySQLを選択できます。

どのデータベースを選択するように求められた場合、INFORMATION_SCHEMAは読み取り専用であり、選択しないでください。それ以外の場合、特定のニーズがない限り、たとえばサーバー(およびおそらく関連するWebサイト)のクローンを作成している場合は、おそらく他のすべてのテーブルを選択します。

そこから、MySQL Workbenchにその処理を実行させます。最後にデータをコピーするまで、スキーマを古いサーバーから新しいサーバーにリバースエンジニアリングするプロセスを実行している間、次をクリックし続けます。

続行する前に変更を加えることができる多くのポイントがあります。また、プロセス中に発生する可能性のある問題と警告を表示することもできます。

完了した後も、クローンデータベースのユーザーを(手動で?)追加する必要があります。おそらく自動でusersテーブルを複製する方法もあるでしょうが、私はそれについて知りません。他に何もない場合は、コマンドラインからこれを行うことができます。私はこれを私のローカル開発者に使用しているので、私はとにかく追加するだけです。

このツールを使用する方が、通常の方法でデータベースをエクスポートおよびインポートするよりも速いと思います。しかし、それは確かに簡単です。
このツールは実際には、たとえばライブデータベースのコピーをローカルの開発サーバーまたはその逆に取得するための一般的なツールとしてではなく、さまざまな種類のデータベース(PostgressSQLやMySQLなど)間のより複雑な移行用に設計されていますその逆。

同じメニューの下に、Database-> Schema Transfer Wizardがあります。これは、新しいサーバーバージョンに更新する必要がある場合に使用されると理解しました。 2つのツールの違い、または実際の使用例は明確にはわかりません。

MySQLワークベンチでの標準のインポート/エクスポート操作の実行方法に関する説明は、ドキュメントが SQLデータエクスポートおよびインポートウィザード および テーブルデータエクスポートおよびインポートウィザード です。

ダンプファイルを保存して読み取るのではなく、[接続]を選択するだけで、開発サーバーとライブサーバーの間で直接インポート/エクスポートできる場合は、すばらしいでしょう。
コマンドラインからでも実行できると思います。

1
SherylHohman