我有一个包含近 100 个表的 MySQL 数据库。
我想在同一台服务器上设置 N 个额外的 MySQL 数据库,每个数据库运行在不同的端口上。我希望每个额外的数据库都具有与原始数据库相同的架构/表结构。
有没有办法自动制作原始数据库的 N 个副本并将它们设置在 N 个不同的端口上?
谢谢
答案1
看一下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,它们具有与原始数据库相同的模式。
答案2
您可以使用以下方式转储现有数据库的架构mysqldump
与--no-data
选项然后使用它使用一个简单的脚本来创建新的数据库,该脚本创建每个数据库,然后从 mysqldump 的输出中填充它。