ほぼ100のテーブルを含むMySQLデータベースがあります。
同じサーバー上にN個の追加のMySQLデータベースをセットアップし、それぞれを異なるポートで実行したい。また、追加の各データベースに、元のデータベースと同じスキーマ/テーブル構造を持たせたいです。
元のデータベースのN個の複製を自動的に作成し、それらをN個の異なるポートに設定する方法はありますか?
ありがとう
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が作成されます。
mysqldump
と --no-data
オプション を使用して既存のデータベースのスキーマをダンプし、これを使用して簡単なスクリプトを使用して新しいデータベースを作成できますこれにより、各データベースが作成され、mysqldumpの出力からデータが読み込まれます。