search
HomeDatabaseMysql TutorialMySQL备份命令mysqldump参数说明与示例
MySQL备份命令mysqldump参数说明与示例Jun 07, 2016 pm 04:42 PM
mysqlparameterOrderbackupExampleillustrate

原文 ? http://segmentfault.com/blog/seanlook/1190000002428533 1. 语法选项说明 -h, --host=name 主机名 -P[ port_num], --port=port_num 用于连接MySQL服务器的的TCP/IP端口号 --master-data 这个选项可以把binlog的位置和文件名添加到输出中,如果等于1

1. 语法选项说明

  • -h, --host=name
    主机名
  • -P[ port_num], --port=port_num用于连接MySQL服务器的的TCP/IP端口号

  • --master-data这个选项可以把binlog的位置和文件名添加到输出中,如果等于1,将会打印成一个CHANGE MASTER 命令;如果等于2,会加上注释前缀。并且这个选项会自动打开--lock-all-tables ,除非同时设置了 --single-transaction (这种情况下,全局读锁只会在开始dump的时候加上一小段时间,不要忘了阅读--single-transaction 的部分)。在任何情况下,所有日志中的操作都会发生在导出的准确时刻。这个选项会自动关闭 --lock-tables

  • -x, --lock-all-tables锁定所有库中所有的表。这是通过在整个dump的过程中持有全局读锁来实现的。会自动关闭 --single-transaction--lock-tables

  • --single-transaction通过将导出操作封装在一个事务内来使得导出的数据是一个一致性快照。只有当表使用支持MVCC的存储引擎(目前只有InnoDB)时才可以工作;其他引擎不能保证导出是一致的。当导出开启了 --single-transaction 选项时,要确保导出文件有效(正确的表数据和二进制日志位置),就要保证没有其他连接会执行如下语句: ALTER TABLE, DROP TABLE, RENAME TABLE, TRUNCATE TABLE ,这会导致一致性快照失效。这个选项开启后会自动关闭 --lock-tables

  • -l, --lock-tables对所有表加读锁。(默认是打开的,用 --skip-lock-tables 来关闭,上面的选项会把关闭 -l 选项)

  • -F, --flush-logs在开始导出前刷新服务器的日志文件。注意,如果你一次性导出很多数据库(使用-databases=--all-databases 选项),导出每个库时都会触发日志刷新。例外是当使用了 --lock-all-tables--master-data 时:日志只会被刷新一次,那个时候所有表都会被锁住。所以如果你希望你的导出和日志刷新发生在同一个确定的时刻,你需要使用 --lock-all-tables ,或者--master-data 配合 --flush-logs

  • --delete-master-logs备份完成后删除主库上的日志。这个选项会自动打开“–master-data`。

  • --opt-add-drop-table, --add-locks, --create-options, --quick, --extended-insert, --lock-tables, --set-charset, --disable-keys。(默认已开启, --skip-opt 关闭表示这些选项保持它的默认值)应该给你为读入一个MySQL服务器的尽可能最快的导出, --compact 差不多是禁用上面的选项。

  • -q, --quick
    不缓冲查询,直接导出至stdout。(默认打开,用 --skip-quick 来关闭)该选项用于转储大的表。
  • --set-charset
    SET NAMES default_character_set 加到输出中。该选项默认启用。要想禁用 SET NAMES 语句,使用 --skip-set-charset
  • --add-drop-tables
    在每个 CREATE TABLE 语句前添加 DROP TABLE 语句。默认开启。
  • --add-locks
    在每个表导出之前增加 LOCK TABLES 并且之后 UNLOCK TABLE 。(为了使得更快地插入到MySQL)。默认开启。
  • --create-option
    在CREATE TABLE语句中包括所有MySQL表选项。默认开启,使用--skip-create-options 来关闭。
  • -e, --extended-insert使用全新多行INSERT语法,默认开启(给出更紧缩并且更快的插入语句)

  • -d, --no-data不写入表的任何行信息。如果你只想得到一个表的结构的导出,这是很有用的。

  • --add-drop-database在create数据库之前先 DROP DATABASE ,默认关闭,所以一般在导入时需要保证数据库已存在。

  • --default-character-set=使用的默认字符集。如果没有指定,mysqldump使用utf8。

  • -B, --databases转储几个数据库。通常情况,mysqldump将命令行中的第1个名字参量看作数据库名,后面的名看作表名。使用该选项,它将所有名字参量看作数据库名。CREATE DATABASE IF NOT EXISTS db_nameUSE db_name 语句包含在每个新数据库前的输出中。

  • --tables覆盖 --database 选项。选项后面的所有参量被看作表名。

  • -u[ name], --user=连接服务器时使用的MySQL用户名。

  • -p[password], --password[=password]
    连接服务器时使用的密码。如果你使用短选项形式(-p),不能在选项和密码之间有一个空格。如果在命令行中,忽略了 --password-p 选项后面的 密码值,将提示你输入一个。

2. 示例

导出一个数据库:

$ mysqldump -h localhost -uroot -ppassword \
--master-data=2 --single-transaction --add-drop-table --create-options --quick \
--extended-insert --default-character-set=utf8 \
--databases discuz > backup-file.sql

导出一个表:

$ mysqldump -u pak -p --opt --flush-logs pak t_user > pak-t_user.sql

将备份文件压缩:

$ mysqldump -hhostname -uusername -ppassword --databases dbname | gzip > backup-file.sql.gz
对应的还原动作为
gunzip 
<p>导入数据库:</p>
<pre class="brush:php;toolbar:false">mysql> use target_dbname
mysql> source /mysql/backup/path/backup-file.sql
或
$ mysql target_dbname <backup-file.sql>
<p>导入还有一个 <code class="prettyprint">mysqlimport</code> 命令,暂未研究。</p>
<p>直接从一个数据库向另一个数据库转储:</p>
<pre class="brush:php;toolbar:false">mysqldump -u用户名 -p --opt dbname | mysql --host remote_host -C dbname2

关于增量备份与恢复请参考: MySQL增量备份与恢复实例 。

参考

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
图文详解mysql架构原理图文详解mysql架构原理May 17, 2022 pm 05:54 PM

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于架构原理的相关内容,MySQL Server架构自顶向下大致可以分网络连接层、服务层、存储引擎层和系统文件层,下面一起来看一下,希望对大家有帮助。

mysql怎么替换换行符mysql怎么替换换行符Apr 18, 2022 pm 03:14 PM

在mysql中,可以利用char()和REPLACE()函数来替换换行符;REPLACE()函数可以用新字符串替换列中的换行符,而换行符可使用“char(13)”来表示,语法为“replace(字段名,char(13),'新字符串') ”。

mysql的msi与zip版本有什么区别mysql的msi与zip版本有什么区别May 16, 2022 pm 04:33 PM

mysql的msi与zip版本的区别:1、zip包含的安装程序是一种主动安装,而msi包含的是被installer所用的安装文件以提交请求的方式安装;2、zip是一种数据压缩和文档存储的文件格式,msi是微软格式的安装包。

mysql怎么去掉第一个字符mysql怎么去掉第一个字符May 19, 2022 am 10:21 AM

方法:1、利用right函数,语法为“update 表名 set 指定字段 = right(指定字段, length(指定字段)-1)...”;2、利用substring函数,语法为“select substring(指定字段,2)..”。

mysql怎么将varchar转换为int类型mysql怎么将varchar转换为int类型May 12, 2022 pm 04:51 PM

转换方法:1、利用cast函数,语法“select * from 表名 order by cast(字段名 as SIGNED)”;2、利用“select * from 表名 order by CONVERT(字段名,SIGNED)”语句。

MySQL复制技术之异步复制和半同步复制MySQL复制技术之异步复制和半同步复制Apr 25, 2022 pm 07:21 PM

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于MySQL复制技术的相关问题,包括了异步复制、半同步复制等等内容,下面一起来看一下,希望对大家有帮助。

带你把MySQL索引吃透了带你把MySQL索引吃透了Apr 22, 2022 am 11:48 AM

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了mysql高级篇的一些问题,包括了索引是什么、索引底层实现等等问题,下面一起来看一下,希望对大家有帮助。

mysql怎么判断是否是数字类型mysql怎么判断是否是数字类型May 16, 2022 am 10:09 AM

在mysql中,可以利用REGEXP运算符判断数据是否是数字类型,语法为“String REGEXP '[^0-9.]'”;该运算符是正则表达式的缩写,若数据字符中含有数字时,返回的结果是true,反之返回的结果是false。

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
3 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

DVWA

DVWA

Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

SecLists

SecLists

SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.