mysql - 从命令行备份 MySql 数据库

标签 mysql mysqldump

我可以通过执行以下命令通过命令行备份 mysql 数据库:

C:\MySQL\MySQL Server 5.0\bin\mysqldump\" -uroot -ppassword sample > \"D:/admindb/AAR12.sql\"

但是在我的 .mysql 文件中没有 DROP 和 CREATE 数据库查询

我应该在语法中添加什么来获取我生成的 .sql 文件的创建信息?

    -- MySQL dump 10.11
--
-- Host: localhost    Database: sample
-- ------------------------------------------------------
-- Server version   5.0.67-community-nt

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `awss_red_force`
--
--

DROP TABLE IF EXISTS `awss_red_force`;
SET @saved_cs_client     = @@character_set_client;
SET character_set_client = utf8;
CREATE TABLE `awss_red_force` (
  `int_scenario_id` int(11) NOT NULL,
  `str_entity_name` varchar(100) default NULL,
  `str_hla_type` varchar(30) default NULL,
  `str_parent_name` varchar(100) default NULL,
  `dbl_x` double default NULL,
  `dbl_y` double default NULL,
  `dbl_z` double default NULL,
  PRIMARY KEY  (`int_scenario_id`),
  KEY `awss_red_force_ibfk_1` (`int_scenario_id`),
  CONSTRAINT `awss_red_force_ibfk_1` FOREIGN KEY (`int_scenario_id`) REFERENCES `scenario` (`int_scenario_id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
SET character_set_client = @saved_cs_client;

--
-- Dumping data for table `awss_red_force`
--

LOCK TABLES `awss_red_force` WRITE;
/*!40000 ALTER TABLE `awss_red_force` DISABLE KEYS */;
/*!40000 ALTER TABLE `awss_red_force` ENABLE KEYS */;
UNLOCK TABLES;

最佳答案

您可以使用--add-drop-table--create-options 选项。

--add-drop-table

Add a DROP TABLE statement before each CREATE TABLE statement.

mysqldump

实际上,即使没有任何额外的键,也应该添加 CREATE TABLE

更新:

backup.bat的内容

C:\MySQL\MySQL Server 5.0\bin\mysqldump -uroot -ppassword sample >
                                                     D:/admindb/AAR12.sql
copy db_restore.sql+AAR12.sql restore.sql

假设您手动创建 db_restore.sql 并放置所有数据库范围的创建/删除操作。 backup.bat 应该生成带有数据库删除/创建和您的表数据的 restore.sql。

关于mysql - 从命令行备份 MySql 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3020594/

相关文章:

mysql - 配置 MySQL 服务器以避免 "MySQL Server has gone away"错误

python - RSS feedparser 到 MySQL 数据库未填充

MySQL 转换为 TINYINT

mysql - 如何更快地导入 MySQL?

mysql - 导入错误的 MySQL 转储时如何跳过行

mysql - 大型数据集的最佳数据库引擎

mysqldump + auto_increment 导致主键错误

mysql - 对按标签过滤的项目进行排序

mysql - 使用随机字符串更新新的 SQL 列

php mysql查询字符串数组