bil*_*can 4 mysql mysqldump backup
我有一个小脚本,它允许我选择一个数据库和一些表,然后通过mysqldump
.
目前这不包括USE 'db_name'
输出文件中的语句,这是我需要包含的内容。
这是我正在使用的转储命令示例:-
mysqldump -u root db_name tbl_1 tbl_2 tbl_3 > output.sql
我在这里找到了这个问题,它描述了我遇到的相同问题,但是提供的答案对我不起作用。该USE 'db_name'
语句不会写入输出的 SQL 文件。
这是从我转储的 SQL 文件之一到它启动DROP
/ CREATE
table 命令的所有内容:
-- MySQL dump 10.13 Distrib 5.5.16, for Win64 (x86)
--
-- Host: localhost Database: db_name
-- ------------------------------------------------------
-- Server version 5.5.16-log
/*!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 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
Run Code Online (Sandbox Code Playgroud)
如果有人知道此问题的解决方案,或者为什么另一个问题中的解决方案对我不起作用,我将不胜感激。
谢谢!
尝试USE db_name
手动放置
echo "USE db_name" > output.sql
mysqldump -u root db_name tbl_1 tbl_2 tbl_3 >> output.sql
Run Code Online (Sandbox Code Playgroud)
我可以看到不将USE
命令与 select mysqldumping of tables混合在一起的智慧。您不想冒险使用生产数据库的名称创建数据库。您也不希望开发人员意识到将成为目标的数据库。通过这种方式,mysqldump 本身永远不会因为覆盖目标表而受到指责。