首页  >  文章  >  数据库  >  如何在同一实例上复制 MySQL 数据库而不转储?

如何在同一实例上复制 MySQL 数据库而不转储?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-31 06:07:30362浏览

How to Copy a MySQL Database on the Same Instance Without Dumping?

在同一实例上复制 MySQL 数据库而不转储

无需创建实例即可在同一 MySQL 实例上复制数据库中间 SQL 脚本。以下方法为传统的转储和导入过程提供了更简单的替代方案。

直接管道传输数据

MySQL 手册概述了一种允许管道传输 mysqldump 输出的方法直接进入 mysql 客户端:

mysqldump --routines --triggers db_name | mysql new_db_name

此命令创建名为 new_db_name 的 db_name 数据库的副本。它包括数据和数据库对象,例如例程和触发器。

复制 MyISAM 文件

对于使用 MyISAM 存储引擎的数据库,直接复制数据文件在技术上是可行的,但是不推荐。文件可能需要重命名,数据库可能需要手动修复。

使用连接详细信息

mysqldump 和 mysql 命令可以接受设置连接的各种选项详细信息,包括用户名和密码:

mysqldump -u username --password=password original_db | mysql -u username -p new_db

此命令使用指定的凭据将original_db 数据库复制到名为 new_db 的新数据库。

创建新数据库

如果新数据库尚不存在,则必须在使用管道方法之前创建它。这可以通过以下命令完成:

echo "create database new_db_name" | mysql -u username -p

通过遵循这些方法,您可以在同一实例上高效地创建 MySQL 数据库的副本,而无需中间转储文件。

以上是如何在同一实例上复制 MySQL 数据库而不转储?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn