2011-06-12 94 views
1

我遇到从转储文件还原时遇到问题。如果转储文件不存在,转储文件可以选择构建数据库。那么为什么下面的脚本只有当我有数据库时才起作用。从转储文件还原mysql数据库未知数据库错误

的mysql -u根-p1234 modal_db < C:\ WAMP \ db_backups \ modal_db \ mdb.sql

这里的转储文件

-- MySQL dump 10.13 Distrib 5.5.8, for Win32 (x86) 
-- 
-- Host: localhost Database: modal_db 
-- ------------------------------------------------------ 
-- Server version 5.5.8-log 

/*!40101 SET @[email protected]@CHARACTER_SET_CLIENT */; 
/*!40101 SET @[email protected]@CHARACTER_SET_RESULTS */; 
/*!40101 SET @[email protected]@COLLATION_CONNECTION */; 
/*!40101 SET NAMES utf8 */; 
/*!40103 SET @[email protected]@TIME_ZONE */; 
/*!40103 SET TIME_ZONE='+00:00' */; 
/*!40014 SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; 
/*!40014 SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; 
/*!40101 SET @[email protected]@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; 
/*!40111 SET @[email protected]@SQL_NOTES, SQL_NOTES=0 */; 

-- 
-- Current Database: `modal_db` 
-- 

CREATE DATABASE /*!32312 IF NOT EXISTS*/ `modal_db` /*!40100 DEFAULT CHARACTER SET latin1 */; 

USE `modal_db`; 

-- 
-- Table structure for table `user_info` 
-- 

DROP TABLE IF EXISTS `user_info`; 
/*!40101 SET @saved_cs_client  = @@character_set_client */; 
/*!40101 SET character_set_client = utf8 */; 
CREATE TABLE `user_info` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `name` varchar(30) NOT NULL, 
    `email` varchar(30) NOT NULL, 
    `password` varchar(30) NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=latin1; 
/*!40101 SET character_set_client = @saved_cs_client */; 

-- 
-- Dumping data for table `user_info` 
-- 

LOCK TABLES `user_info` WRITE; 
/*!40000 ALTER TABLE `user_info` DISABLE KEYS */; 
INSERT INTO `user_info` VALUES (1,'[object Object]','[object Object]','[object Object]'),(2,'amaya','[email protected]','neato'),(3,'yoh','[email protected]','ff2cbe54328162379ba1baf57b23f9'),(4,'fure','[email protected]','263bce650e68ab4e23f28263760b9f'),(5,'koroja','[email protected]','665b3a3829375f4acbb00858299a08'),(6,'maro','[email protected]','2f66aed2714edaa599e148990c9d16'),(7,'deg','[email protected]','n'),(8,'mario','[email protected]','c1210473c214e0cf5968bf147ed079'),(9,'mizuo','[email protected]','n'),(10,'bakuryu','[email protected]','b'),(11,'maron','[email protected]','m'),(12,'gatou','[email protected]','g'),(13,'mocha','[email protected]','mo'),(14,'pizza','[email protected]','gm'),(15,'bbq','[email protected]','food'),(16,'salad','[email protected]','s'); 
/*!40000 ALTER TABLE `user_info` ENABLE KEYS */; 
UNLOCK TABLES; 
/*!40103 SET [email protected]_TIME_ZONE */; 

/*!40101 SET [email protected]_SQL_MODE */; 
/*!40014 SET [email protected]_FOREIGN_KEY_CHECKS */; 
/*!40014 SET [email protected]_UNIQUE_CHECKS */; 
/*!40101 SET [email protected]_CHARACTER_SET_CLIENT */; 
/*!40101 SET [email protected]_CHARACTER_SET_RESULTS */; 
/*!40101 SET [email protected]_COLLATION_CONNECTION */; 
/*!40111 SET [email protected]_SQL_NOTES */; 

-- Dump completed on 2011-06-12 21:53:48 

请帮助。如何恢复数据库已删除?

回答

3

您的MySQL命令行试图选择一个数据库,如果该数据库不存在,该数据库将失败。你可以从你的命令行参数中省略这个参数,因为SQL文件本身是用USE选择一个数据库本身。

尝试:

mysql -u root -p1234 < c:\wamp\db_backups\modal_db\mdb.sql 
+0

它的工作在命令行,但是当我用一个批处理文件,我没有得到期望的结果。 – 2011-06-13 13:24:15

+0

这可能是一个路径问题(确保为mysql可执行文件和数据库文件使用绝对路径)。你有任何错误? – Tak 2011-06-13 13:27:22

+0

路径存在。我只是不知道它为什么似乎在循环,但它什么也没做。 – 2011-06-14 12:41:07