c++ - 如何以编程方式克隆 mysql 数据库

标签 c++ mysql mariadb

我对 mysql 数据库克隆的编程方法(从 C++ 应用程序)很感兴趣。我在想远程调用 mysqldump 的一些事情,比如:

mysqldump -u root -p --all-databases > C:\MySQL_Backup.sql

然后返回:

mysql --user=root --password=password < c:\ MySQL_Backup.sql

最后一个命令的问题是它假设恢复的数据库必须与原始数据库相同 - 所以这只真正适用于备份和恢复,但通常不适用于克隆数据库。

用 mysql 克隆数据库有什么方法?顺便说一句,我并没有真正使用 mysql,而是使用 MariaDB,但这应该无关紧要

最佳答案

mysqldump 仅在您想克隆整个数据库服务器时才有效,包括很好地破坏 mysql 数据库本身(所有用户、主机、数据库权限都被覆盖)。

我会结合使用:

mysql -e "显示数据库"

转储数据库列表。然后删除任何您不想备份的内容(例如 information_schema 和 mysql),并对每个剩余的名称执行

mysqldump $数据库 > $database.sql

然后您可以将文件导入特定的数据库名称:

mysql $new_database < $database.sql

关于c++ - 如何以编程方式克隆 mysql 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9407107/

相关文章:

mysql - 在 WHERE IN 中使用 SELECT 结果的别名

c++ - 有符号字节和奇偶校验字节的区别

在 header 中声明的 C++ 外部数组在 main.cpp 中不可用

c++ - 在我自己的类上使用 std::inner_product

mysql:批量删除并重新创建带有新排序规则的函数

php - MYSQL - 将多个输入插入表问题

mysql - 如何使用 2 个值在 2 个表之间进行连接?

mysql - 在 MariaDB 中创建桥表

c++ - QToolBox - 展开多个项目

mysql - NOT IN 嵌套子查询返回空集,因此没有连接结果