我使用以下命令备份生产数据库:
mysqldump -u root --opt --skip-extended-insert --databases my_production_db
导出的转储文件顶部附近有以下几行:
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `my_production_db` /*!40100 DEFAULT CHARACTER SET latin1 */;
USE `my_production_db `;
为了将数据库恢复到不同的目标位置,即 my_debvelopment_db
,我需要打开转储文件并编辑其中命名数据库的部分。然后我运行:mysql -u root -p <password> < mydumpfile
我还没有想到其他的方法。
随着数据库变得越来越大,这种方法变得不切实际。
我是否漏掉了什么?我能否指定恢复数据库的位置?我需要使用不同的备份命令吗?
-p database_name
这个命令存在错误,因为-p
是--password
的简写,而不是数据库名称。 - Hibou57-p
代表--password
,正如您所提到的那样。但是,-p
实际上意味着“我将通过提示输入密码”。如果您想通过命令选项输入密码,那么就不应该有空格,例如-p<your_password>
而不是-p <your_password>
。 - lqez