在同一实例上复制 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中文网其他相关文章!