web-dev-qa-db-ja.com

あるMySQLデータベースから別のMySQLデータベースにスキーマをコピーする方法はありますか?

ほぼ100のテーブルを含むMySQLデータベースがあります。

同じサーバー上にN個の追加のMySQLデータベースをセットアップし、それぞれを異なるポートで実行したい。また、追加の各データベースに、元のデータベースと同じスキーマ/テーブル構造を持たせたいです。

元のデータベースのN個の複製を自動的に作成し、それらをN個の異なるポートに設定する方法はありますか?

ありがとう

5
Continuation

mysqldump を見て、それは--no-dataスキーマのコピーを取得するオプション。それができたら、mysqlでソースするスクリプトを作成する必要があります

例えば.

mysqldump --no-data -u user -p database >database-schema.sql

データベースdatabaseのスキーマのコピーが生成されます。

たとえばmakedbs.sqlというファイルに以下のようなスクリプトがある場合

create database N;

ここに権限を設定

use N;

source database-schema.sql;

create database N1;

ここに権限を設定

use N1;

source database-schema.sql;

次に、mysqlとソースのmakedbs.sqlを実行できます。

mysql -u user -p

mysql> source makedbs.sql

これにより、元のスキーマと同じスキーマを持つ2つのデータベースNとN1が作成されます。

9
user9517

mysqldump--no-dataオプション を使用して既存のデータベースのスキーマをダンプし、これを使用して簡単なスクリプトを使用して新しいデータベースを作成できますこれにより、各データベースが作成され、mysqldumpの出力からデータが読み込まれます。

1
dunxd