![有什么方法可以将模式从一个 MySQL 数据库复制到另一个 MySQL 数据库吗?](https://linux22.com/image/528246/%E6%9C%89%E4%BB%80%E4%B9%88%E6%96%B9%E6%B3%95%E5%8F%AF%E4%BB%A5%E5%B0%86%E6%A8%A1%E5%BC%8F%E4%BB%8E%E4%B8%80%E4%B8%AA%20MySQL%20%E6%95%B0%E6%8D%AE%E5%BA%93%E5%A4%8D%E5%88%B6%E5%88%B0%E5%8F%A6%E4%B8%80%E4%B8%AA%20MySQL%20%E6%95%B0%E6%8D%AE%E5%BA%93%E5%90%97%EF%BC%9F.png)
我有一个包含近 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 的输出中填充它。