The mysqldump client utility performs logical backups, producing a set of SQL statements that can be executed to reproduce the original database object definitions and table data. It dumps one or more MySQL databases for backup or transfer to another SQL server. The mysqldump command can also generate output in CSV, other delimited text, or XML format.
mysqldump是MySQL官方自带的逻辑备份工具。备份结果是生成一系列的文本SQL语句,可以很方便地用作数据备份,也可以用于数据迁移。平时逻辑备份时用mysqldump是最多的,但也没好好进行学习总结,本文主要就mysqldump常用选项和主要用法作个学习总结。
关于mysqldump更详细的信息可以参考官方文档:https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html
本文使用的MySQL版本为官方社区版 5.7.24
。
(root@localhost) [test] > select version();
+------------+
| version() |
+------------+
| 5.7.24-log |
+------------+
1 row in set (0.00 sec)
主要说明
# mysqldump --help
mysqldump Ver 10.13 Distrib 5.7.24, for linux-glibc2.12 (x86_64)
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Dumping structure and contents of MySQL databases and tables.
Usage: mysqldump [OPTIONS] database [tables]
OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR mysqldump [OPTIONS] --all-databases [OPTIONS]
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
常用选项
连接选项(Connection Options)
--bind-address=ip_address
当MySQL服务器有多个网络接口,指定mysqldump
连接MySQL服务器使用的网络接口。--compress, -C
当服务端和客户端都支持压缩时,指定压缩传输的数据。--host=host_name, -h host_name
指定需要dump数据的MySQL服务器,默认是localhost。--port=port_num, -P port_num
指定连接MySQL服务器的端口。--user=user_name, -u user_name
指定连接MySQL服务器的用户名。- --password[=password], -p[password]
指定连接MySQL服务器的用户密码。- 如果命令行使用 -p 选项指定密码,则选项与密码串之间不允许有空格,不过命令行中密码串明文是不安全的;
- 如果命令行选项后面没有指定密码串,则
mysqldump
在连接前会进行提示输入。
--pipe, -W
在Windows环境下,指定命名管道连接MySQL服务器。此选项仅当服务器支持命名管道连接才生效。--socket=path, -S path
在Unix系统下指定本地连接使用socket文件,类似于Windows环境下的命名管道。
参数文件选项(Option-File Options)
--defaults-file=file_name
指定读取的参数文件。如果这个文件不存存或是无法访问则会报错。--no-defaults
不读取任何的参数文件。--print-defaults
显示mysqldump
读取的参数文件。
DDL选项(DDL Options)
--add-drop-database
在每行CREATE DATABASE
语句前添加DROP DATABASE
语句。这个选项通常与 --all-databases或 --databases选项一起使用,因为如果没有指定这两个选项之一也不会有CREATE DATABASE
语句。--add-drop-table
在dump输出中每行CREATE TABLE
语句前添加DROP TABLE
语句。--add-drop-trigger
在dump输出中每行CREATE TRIGGER
语句前添加DROP TRIGGER
语句。--no-create-db, -n
在dump输出中禁止生成CREATE DATABASE
语句,即使指定了 --all-databases或 --databases选项。--no-create-info, -t
每张表dump的时候都不生成CREATE TABLE
语句。--no-tablespaces, -y
在dump输出中都禁止生成CREATE LOGFILE GROUP
和CREATE TABLESPACE
语句。--replace
在dump输出中使用REPLACE
语句代替INSERT
语句。
调试选项(Debug Options)
--comments, -i
在dump输出中增加额外的信息,如mysqldump版本,MySQL版本,MySQL主机名等。默认是开启状态,如果要禁止,则可以指定选项 --skip-comments。--debug-info
在mysqldump
退出时打印调试信息以及CPU和内存的使用统计信息。--dump-date
当启用选项 --comments时,在dump输出中的末尾添加结束时间。可以使用选项 --skip-dump-date禁止添加。--force, -f
忽略dump表过程当中的SQL错误。这个选项适用于当指定dump视图,视图所对应的表被清除而变成invaild状态时,mysqldump
会记录视图定义以及错误信息并继续执行dump操作。如果未指定该选项,则mysqldump
报错并退出。--log-error=file_name
指定警告和错误信息记录的文件,默认不记录。--verbose, -v
详细模式,打印mysqldump
执行更详细的信息。
国际化选项(Internationalization Options)
--character-sets-dir=dir_name
指定