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

Con*_*ion 5 mysql database database-administration

我有一个包含近 100 个表的 MySQL 数据库。

我想在同一台服务器上设置 N 个额外的 MySQL 数据库,每个数据库都在不同的端口上运行。我希望每个附加数据库都具有与原始数据库相同的架构/表结构。

有没有办法自动制作N个原始数据库的副本并将它们设置在N个不同的端口上?

谢谢

use*_*517 9

看看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
Run Code Online (Sandbox Code Playgroud)

这将创建 2 个数据库 N 和 N1,它们与您的原始数据库具有相同的架构。