MySQL的mysqldump
指令可以进行逻辑备份,其使用格式为mysqlpump [options] > dump.sql
。下述为其简单应用格式:
1.将数据库中某个数据库备份
$ mysqldump -uroot -pPassword [db_name] > [file_name]
例: mysqldump -uroot -p123456 test > test.sql
生成的test.sql
包含数据结构和数据.
2.远程备份
$ mysqldump -uroot -pPassword -hhost -Pport [db_name] > [file_name]
例: mysqldump -uroot -p123456 -h192.168.14.171 -P13306 test > test.sql
mysqldump
支持一下参数:
参数名 | 说明 | 使用格式(默认值) |
---|---|---|
–add-drop-database | 在CREATE DATABLE 前添加DROP DATABASE 语句 |
|
–add-drop-table | 在CREATE TABLE 前添加DROP TABLE 语句 |
默认开启 |
–add-drop-user | 在CREATE USER 前添加DROP USER 语句 |
|
–add-drop-trigger | 在CREATE TRIGGER 前添加DROP TRIGGER 语句 |
|
–add-locks | 在每个表导出时添加LOCK TABLES 并且之后进行UNLOCK TABLES |
默认开启 |
–all-databases | 导出所有数据库 | |
–allow-keywords | 允许创建以关键字为列名的列 | |
–apply-slave-statements | 在CHANGE MASTER 前添加STOP SLAVE 语句,在导出最后START SLAVE |
|
–bind-address | 使用指定的网络接口连接MySQL数据库 | |
–character-sets-dir | 指定安装字符集的目录 | |
–comments | 将注释导入到dump文件中 | 默认开启 |
–compact | 产生更少的输出信息 | |
–compatible | 导出的数据将与其它类型数据库或旧版本的MySQL兼容,值可以为ansi、mysql323、mysql40、postgresql、oracle、mssql、db2、maxdb、no_key_options、no_tables_options、no_field_options等 | |
–complete-insert | 使用完整的包含列名的插入语句 | |
–compress | 在客户端与服务器间压缩传递所有的信息 | |
–create-options | 在CREATE TABLE语句中包含所有MySQL表特性选项 | 默认打开 |
–databases | 输入后的所有参数都作为数据库名 | |
–debug | 输出debug日志 | |
–debug-check | 当程序退出时,打印debug信息 | |
–debug-info | 当程序退出时输出debug信息、内存和CPU信息 | |
–default-auth | 使用认证插件 | |
–default-character-set | 指定默认字符集 | 默认值为utf8 |
–defaults-extra-file | 读取配置文件 | |
–defaults-file | 只读命名文件 | |
–defaults-group-suffix | Option group suffix value | |
–delete-master-logs | 在master备份后删除日志 | |
–disable-keys | For each table, surround INSERT statements with statements to disable and enable keys | |
–dump-date | Include dump date as “Dump completed on” comment if --comments is given | |
–dump-slave | 该选项将导致主的binlog位置和文件名追加到导出数据的文件中 | |
–enable-cleartext-plugin | Enable cleartext authentication plugin | 5.7.10启用 |
–events | 从数据库导出event | |
–extended-insert | 使用多行插入语句 | |
–fields-enclosed-by | 输出文件中的各个字段用给定字符包裹。与--tab 选项一起使用 |
|
–fields-escaped-by | 输出文件中的各个字段忽略给定字符。与–tab选项一起使用 | |
–fields-optionally-enclosed-by | 输出文件中的各个字段用给定字符选择性包裹。与–tab选项一起使用 | |
–fields-terminated-by | 导出文件中忽略的指定字段,与--tab 一起使用 |
|
–flush-logs | 在开始导出前刷新日志 | |
–flush-privileges | 在导出数据库后,执行FLUSH PRIVILEGES |
|
–force | 在导出表的过程中忽略出现的SQL错误 | |
–get-server-public-key | 从服务获取RSA公共key | 5.7.23 |
–help | 展示帮助信息并退出 | |
–hex-blob | 使用十六进制格式导出二进制字符串字段 | |
–host | 要连接的远程主机IP | |
–ignore-error | 忽略指定错误 | 5.7.1启用 |
–ignore-table | 不导出指定表 | |
–include-master-host-port | 在--dump-slave 产生的CHANGE MASTER TO.. 语句中增加MASTER_HOST=<host>,MASTER_PORT=<port> |
|
–insert-ignore | 用INSERT IGNORE 替代INSERT |
|
–lines-terminated-by | 输出文件的每行用给定字符串划分。与–tab选项一起使用 | |
–lock-all-tables | 提交请求锁定所有数据库中的所有表,以保证数据的一致性。这是一个全局读锁,并且自动关闭 | |
–lock-tables | 在dump表之前锁表 | |
–log-error-file | 导出警告和错误信息到指定文件 | |
–login-path | Read login path options from .mylogin.cnf | |
–master-data | 该选项将binlog的位置和文件名追加到输出文件中 | |
–max-allowed-packet | 设置从服务接收或发送到服务的最大包长度 | |
–net-buffer-length | 设置TCP/IP 和socket连接的缓存大小 | |
–no-autocommit | 使用autocommit/commit 语句包裹表。 | |
–no-create-db | 不导出建库语句 | |
–no-create-info | 不导出建表语句 | |
–no-data | 不导出表数据 | |
–no-defaults | Read no option files | |
–no-set-names | 等同于--skip-set-charset |
|
–no-tablespaces | 不导入表空间信息 | |
–opt | 等同于–add-drop-table, --add-locks, --create-options, --quick, --extended-insert, --lock-tables, --set-charset, --disable-keys 该选项默认开启, 可以用–skip-opt禁用. | |
–order-by-primary | 导出每个表的数据行时按照表的主键或者第一个唯一字段排序 | |
–password | 连接数据库的密码 | |
–pipe | 在Windows,使用命名管道连接mysql | |
–plugin-dir | 指定插件安装的目录 | |
–port | 数据库连接的端口 | |
–print-defaults | 输出默认参数 | |
–protocol | 连接所用的协议 | |
–quick | 不缓冲查询,直接导出到标准输出 | 默认打开 |
–quote-names | 使用(`)引起表和列名 | 默认开启 |
–replace | 用REPLACE 取代INSERT 语句 |
|
–result-file | 直接输出到指定文件中 | |
–routines | 导出保存的routine(存储过程和函数) | |
–secure-auth | 不以旧形式向服务发送密码 | 5.7.4启用,5.7.5弃用 |
–server-public-key-path | Path name to file containing RSA public key | 5.7.23 |
–set-charset | 添加SET NAMES default_character_set 到输出文件 |
默认开启 |
–set-gtid-purged | Whether to add SET @@GLOBAL.GTID_PURGED to output | |
–shared-memory-base-name | The name of shared memory to use for shared-memory connections | |
–single-transaction | 选项在导出数据之前提交一个BEGIN SQL语句,BEGIN 不会阻塞任何应用程序且能保证导出时数据库的一致性状态。它只适用于多版本存储引擎,仅InnoDB。本选项和–lock-tables 选项是互斥的,因为LOCK TABLES 会使任何挂起的事务隐含提交。要想导出大表的话,应结合使用–quick 选项。 | |
–skip-add-drop-table | 不在CREATE TABLE 前添加DROP TABLE 语句 |
|
–skip-add-locks | 导出时不加锁 | |
–skip-comments | 不导出注释 | |
–skip-compact | 不减少输出信息 | |
–skip-disable-keys | 不disable key | |
–skip-extended-insert | 关闭extended-insert | |
–skip-opt | 关闭--opt 设定的 |
|
–skip-quick | 进行数据缓冲Do not retrieve rows for a table from the server a row at a time | |
–skip-quote-names | 取消1–quote-names` | |
–skip-set-charset | 不设置字符集 | |
–skip-triggers | 不导出触发器 | |
–skip-tz-utc | 关闭时区设置 | |
–socket | 指定连接mysql的socket文件位置 | |
–ssl | Enable encrypted connection | |
–ssl-ca | File that contains list of trusted SSL Certificate Authorities | |
–ssl-capath | Directory that contains trusted SSL Certificate Authority certificate files | |
–ssl-cert | File that contains X.509 certificate | |
–ssl-cipher | List of permitted ciphers for connection encryption | |
–ssl-crl | File that contains certificate revocation lists | |
–ssl-crlpath | Directory that contains certificate revocation list files | |
–ssl-key | File that contains X.509 key | |
–ssl-mode | Security state of connection to server | 5.7.11 |
–ssl-verify-server-cert | Verify host name against server certificate Common Name identity | |
–tab为每个表在给定路径创建tab分割的文本文件 | ||
–tables | 覆盖–databases (-B)参数,指定需要导出的表名。 | |
–tls-version | Protocols permitted for encrypted connections | 5.7.10 |
–triggers | 导出触发器 | |
–tz-utc | 添加SET TIME_ZONE='+00:00' 到导出的文件中,保证导出数据的时区正确性 |
|
–user | 指定连接MySQL的用户名 | |
----verbose | 输出多种平台信息。 | |
–version | 显示mysqldump的版本信息并退出 | 5.7.9 |
–where | 只导出符合where条件的数据 | |
–xml | 导出XML格式. |