有什么方法可以将模式从一个 MySQL 数据库复制到另一个 MySQL 数据库吗?

有什么方法可以将模式从一个 MySQL 数据库复制到另一个 MySQL 数据库吗?

我有一个包含近 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 的输出中填充它。

相关内容