あるスキーマから別のスキーマにテーブルとデータをエクスポートする方法はありますか?インポート/エクスポートの管理オプションでは、接続するサーバーを選択するように求められますが、空白になります。私は現在、特にこのクラスのために学校が借りているサーバーに接続しているので、管理者権限はありません。
MySQL Workbenchのデータエクスポートを介してダンプを作成し、新しいスキーマにエクスポートした直後にそれをインポートできます。 MySQL Workbenchを使用すると、ダンプ内のターゲットスキーマをオーバーライドできます。
データを新しいスキーマにインポートできないなどの問題が発生した場合は、回避策が必要になることがあります。 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になる場合があるため、エディターで開くまで少し待つ必要があります。ただし、このコードはファイルの先頭にある必要があるため、簡単に見つけることができます。
お役に立てば幸いです。
6.0以降では、ダンプは、ダンプに名前を付けたディレクトリ内の個々のテーブルを書き出すように見えます。すべてのスキーマ名とテーブル名は、(前述のように)エクスポート元のスキーマにデフォルト設定されます。新しいスキーマへのインポートを容易にするには、ダンプディレクトリで次を実行するだけです。
find . -type f -exec sed -i 's/your_export_schema/your_different_schema_name/g' {} \;
ただし、エクスポートに古いスキーマ名を含むデータがある場合は、自分自身を骨抜きにすることに注意してください。
質問がWorkbanchに関するものであることに気付きましたが、phpMyAdminには、データベース操作で直接この機能があることに注意してください。