我有一个包含近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和source makedbs.sql
mysql -u user -p mysql> source makedbs.sql
这将创build2个数据库N和N1,它们与您的原始数据库具有相同的架构。
您可以使用mysqldump和--no-data选项来转储现有数据库的模式,然后使用创build每个数据库的简单脚本创build新的数据库,然后使用mysqldump的输出填充它。