恢复备份时让MySQL创建数据库

时间:2016-05-25 14:49:42

标签: mysql

我想为用户提供初始数据库的备份,并提供一行命令在其系统上创建数据库。以下是我备份数据库的方法:

mysqldump -u root -p -B --add-drop-database "myDatabase" > backup.sql

这是恢复它的命令:

mysql -u root -p -D "myDatabase" < backup.sql

问题在于它失败了:

ERROR 1049 (42000): Unknown database 'myDatabase'

以下是备份文件的相关部分:

--
-- Current Database: `myDatabase`
--

/*!40000 DROP DATABASE IF EXISTS `myDatabase`*/;

CREATE DATABASE /*!32312 IF NOT EXISTS*/ `myDatabase` /*!40100 DEFAULT CHARACTER SET utf8 */;

USE `myDatabase`;

如果我在MySQL内部输入,我没有问题。

(我还希望mysqldump删除数据库(如果它存在),并在不存在时创建它。)

如果重要,我正在运行

  MySQL 5.5.49-0ubuntu0.12.04.1.

1 个答案:

答案 0 :(得分:1)

好的,你在mysql命令中给出了SCHEMA NAME。所以mysql想要先将模式更改为myDatabase而不要这样做。没有架构myDatabase。删除-D选项,如:

mysql -u root -p  < backup.sql