web-dev-qa-db-ja.com

MySQLWorkbenchで1つのスキーマから別のスキーマにデータをエクスポートする

あるスキーマから別のスキーマにテーブルとデータをエクスポートする方法はありますか?インポート/エクスポートの管理オプションでは、接続するサーバーを選択するように求められますが、空白になります。私は現在、特にこのクラスのために学校が借りているサーバーに接続しているので、管理者権限はありません。

9
Hokerie

MySQL Workbenchのデータエクスポートを介してダンプを作成し、新しいスキーマにエクスポートした直後にそれをインポートできます。 MySQL Workbenchを使用すると、ダンプ内のターゲットスキーマをオーバーライドできます。

7
Mike Lischke

データを新しいスキーマにインポートできないなどの問題が発生した場合は、回避策が必要になることがあります。 MySQLワークベンチから.sqlファイルへのスキーマのエクスポートを実行して、後で別のスキーマにインポートしましたが、エクスポートされた.sqlファイルが以前のスキーマを維持していたという問題がありました。

したがって、これが.sqlエクスポートファイルの先頭にある場合は、次のようになります。

CREATE DATABASE  IF NOT EXISTS `old_schema` /*!40100 DEFAULT CHARACTER SET latin1 */;
USE `old_schema`;

これに置き換えます:

CREATE DATABASE  IF NOT EXISTS `new_schema` /*!40100 DEFAULT CHARACTER SET latin1 */;
USE `new_schema`;

それでうまくいきます。状況によっては、.sqlファイルが数百MBになる場合があるため、エディターで開くまで少し待つ必要があります。ただし、このコードはファイルの先頭にある必要があるため、簡単に見つけることができます。

お役に立てば幸いです。

3
evaldeslacasa

6.0以降では、ダンプは、ダンプに名前を付けたディレクトリ内の個々のテーブルを書き出すように見えます。すべてのスキーマ名とテーブル名は、(前述のように)エクスポート元のスキーマにデフォルト設定されます。新しいスキーマへのインポートを容易にするには、ダンプディレクトリで次を実行するだけです。

find . -type f -exec sed -i 's/your_export_schema/your_different_schema_name/g' {} \;

ただし、エクスポートに古いスキーマ名を含むデータがある場合は、自分自身を骨抜きにすることに注意してください。

1
eggmatters

質問がWorkbanchに関するものであることに気付きましたが、phpMyAdminには、データベース操作で直接この機能があることに注意してください。

0
amichai