mysqldump工具使用帮助文档(mysql数据库备份)
mysqldump客户端实用程序对数据库执行逻辑备份,产生一组能够被执行以再现原始数据库对象定义和表数据的SQL语句。它可以转储一个或多个MySQL数据库进行备份或传输到另一个mysql服务器。mysqldump 命令也可以生成CSV输出,其他分隔符的文本或XML格式。
使用语法为(通常有以下三种):
mysqldump [options] db_name [tbl_name ...] // 指定数据库的指定表
mysqldump [options] --databases db_name ... // 指定数据库
mysqldump [options] --all-databases // 所有数据库
选项语法(其中很多和mysqlimport是一样的):
格式 | 描述 | 介绍 |
--add-drop-database | 在每个CREATE DATABASE语句之前添加DROP DATABASE语句 | |
--add-drop-table | 在每个CREATE TABLE语句之前添加DROP TABLE语句 | |
--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服务器 |
在具有多个网络接口的计算机上, 使用此选项可选择用于连接到MySQL服务器的接口。 MySQL 5.6.1开始支持此选项。 |
--character-sets-dir |
字符集安装目录 | |
--comments |
将注释添加到转储文件 用法: --comments , -i |
在转储文件中编写其他信息,如程序版本,服务器版本和主机。 默认情况下启用此选项。要抑制此附加信息, 请使用 --skip-comments 。 |
--compact |
产生更简洁的输出 |
|
--compatible |
产生与其他数据库系统或旧版MySQL服务器更兼容的输出 用法:--compatible= name |
产生与其他数据库系统或旧版MySQL服务器更兼容的输出。 name的值 可以是 ansi ,mysql323 , mysql40 ,postgresql ,oracle ,mssql , db2 ,maxdb ,no_key_options ,no_table_options ,或 no_field_options 。要使用多个值,请用逗号分隔。这些值与设置服务器SQL模式的相应选项具有相同的含义。 |
--complete-insert |
使用包含列名称的完整INSERT语句 |
|
--compress |
压缩客户端和服务器之间发送的所有信息 |
|
--create-options |
在CREATE TABLE语句中包含所有MySQL特定的表选项 |
|
--databases |
将所有名称参数解释为数据库名称 |
其后跟的名称参数都将当作数据库名称处理 |
--debug |
写调试日志 | |
--debug-check |
程序退出时打印调试信息 |
|
--debug-info |
程序退出时打印调试信息,内存和CPU统计信息 |
|
--default-auth |
使用验证插件 |
|
--default-character-set |
指定默认字符集 |
|
--defaults-extra-file |
除常规选项文件外,还可以读取命名选项文件 |
|
--defaults-file |
只读命名选项文件 |
|
--defaults-group-suffix |
选项组后缀值 |
|
--delayed-insert |
编写INSERT DELAYED语句,而不是INSERT语句 |
从MySQL 5.6.6起,DELAYED 插入已被弃用,因此此选项将在以后的版本中被删除。 |
--delete-master-logs |
在主复制服务器上,执行转储操作后,删除二进制日志 |
|
--disable-keys |
对于每个表,用禁用和启用键语句环绕INSERT语句 |
|
--dump-date |
如果给出--comments,将转储日期包括为“转储完成”注释 |
|
--dump-slave |
包含CHANGE MASTER语句,其中列出了从属主的二进制日志坐标 |
|
--enable-cleartext-plugin |
启用明文验证插件 |
|
--events |
从转储的数据库转储事件 |
|
--extended-insert |
使用多行INSERT语法 用法: --extended-insert , -e |
INSERT 使用包含多个VALUES 列表的多行语法 编写语句 。这将导致一个较小的转储文件,并加速文件重新加载插入。 |
--fields-enclosed-by |
指定字段隔离符号 例如:--fields-enclosed-by=\" 就是用引号(")引住字段值,以防值中有特殊字符引起报错 |
该选项与--tab选项一起使用 |
--fields-escaped-by |
指定字段转义符号 例如:--fields-escaped-by=\ 如果字段中有特殊符号,用 \ 进行转义,防止导入数据时引起报错。 |
该选项与--tab选项一起使用 |
--fields-optionally-enclosed-by |
任选字段隔离符号,猜测此选项的值应该是一个可供选择的列表 | 该选项与--tab选项一起使用 |
--fields-terminated-by |
指定字段结束符号,就是字段以什么符号分隔 | 该选项与--tab选项一起使用 |
--flush-logs |
在开始转储前刷新MySQL服务器日志文件 |
|
--flush-privileges |
在转储mysql数据库后发出FLUSH PRIVILEGES语句 |
|
--force |
即使在表转储期间发生SQL错误也会继续 |
|
--help |
显示帮助信息并退出 |
|
--hex-blob |
使用十六进制符号转储二进制列 |
|
--host |
指定主机名或ip地址 | |
--ignore-table |
忽略给定的表 | 不要转储给定的表,这些表必须使用数据库和表名来指定。 要忽略多个表,请多次使用此选项。此选项也可用于忽略视图。 |
--include-master-host-port |
在--dump-slave生成的CHANGE MASTER语句中包含MASTER_HOST / MASTER_PORT选项 |
|
--insert-ignore |
写入INSERT IGNORE而不是INSERT语句 |
|
--lines-terminated-by |
指定行分隔符 | 该选项与--tab选项一起使用 |
--lock-all-tables |
锁定所有数据库中的所有表 |
|
--lock-tables |
锁定要转储的所有表 | |
--log-error |
在命名文件中附加警告和错误 用法:--log-error= file_name |
|
--login-path |
从.mylogin.cnf读取登录路径选项 |
|
--master-data |
将二进制日志文件名称和位置写入输出 |
|
--max_allowed_packet |
从服务器发送或接收的最大包长度 |
|
--net_buffer_length |
TCP / IP和套接字通信的缓冲区大小 |
|
--no-autocommit |
禁用自动提交 | |
--no-create-db |
不要写CREATE DATABASE语句 |
|
--no-create-info |
不要写入重新创建每个转储表的CREATE TABLE语句 |
|
--no-data |
不要转储表内容,也就是只备份表结构 |
|
--no-defaults |
不读取任何选项文件 | |
--no-set-names |
与--skip-set-charset相同 |
|
--no-tablespaces |
CREATE TABLESPACE语句 |
|
--opt |
选项组,其默认是 -add-drop-table --add-locks --create-options --disable-keys --extended-insert --lock-tables --quick --set-charset的组合形式 | |
--order-by-primary |
转储按其主键或其第一个唯一索引排序的每个表的行 |
|
--password |
连接到服务器时使用的密码 |
|
--pipe |
在Windows上,使用命名管道连接到服务器 |
|
--plugin-dir |
安装插件的目录 |
|
--port |
用于连接的TCP / IP端口号 |
|
--print-defaults |
打印默认选项 |
|
--protocol |
连接使用的协议 | |
--quick |
一次从服务器检索表的一行 |
|
--quote-names |
在反引号字符中引用标识符 |
|
--replace |
编写REPLACE语句而不是INSERT语句 |
|
--result-file |
直接输出到给定的文件 |
|
--routines |
转储存储过程和函数 | |
--secure-auth |
不要以旧(4.1之前)格式向服务器发送密码 |
|
--set-charset |
添加SET NAMES default_character_set进行输出 |
|
--set-gtid-purged |
是否添加SET @@ GLOBAL.GTID_PURGED进行输出 |
|
--shared-memory-base-name |
用于共享内存连接的共享内存的名称 |
|
--single-transaction |
单次事务,在从服务器转储数据之前发出BEGIN SQL语句 | |
--skip-add-drop-table |
不要在每个CREATE TABLE语句之前添加DROP TABLE语句 |
|
--skip-add-locks |
不要加锁 |
|
--skip-comments |
不要在转储文件中添加注释 |
|
--skip-compact |
不要产生更紧凑的(简洁的)输出 |
|
--skip-disable-keys |
不要禁用索引 | |
--skip-extended-insert |
关闭扩展插入 |
|
--skip-opt |
关闭由--opt设置的选项 |
|
--skip-quick |
不要一次从服务器检索表的一行 |
|
--skip-quote-names |
不要用引号引标识符 | |
--skip-set-charset |
不要写SET NAMES语句 |
|
--skip-triggers |
不要转储触发器 |
|
--skip-tz-utc |
关闭tz-utc |
|
--socket |
要连接到本地主机,要使用的Unix套接字文件 |
|
--ssl* |
此系列请参考mysqlimport同参数 | |
--tab |
生成选项卡分隔的数据文件 用法: --tab= , -T |
|
--tables |
覆盖 --databases or -B 选项 |
|
--triggers |
转储触发器 | |
--tz-utc |
将SET TIME_ZONE ='+ 00:00'添加到转储文件 |
|
--user |
连接到服务器时要使用的MySQL用户名 |
|
--verbose |
详细模式 |
|
--version |
显示版本信息并退出 |
|
--where |
仅转储由给定的WHERE条件选择的行 |
|
--xml |
生成XML输出 |
使用示例(我的测试数据库没有密码):
导出sql语句:mysqldump -u root --host localhost test_db user -r D:/testdbBackup/user.sql
或者
mysqldump -u用户名 -p密码 -h 主机地址 数据库名 表名 --where="查询条件" >user.sql
导出csv:mysqldump -u root --host localhost --tab=D:/testdbBackup --fields-terminated-by=, --lines-terminated-by=\r\n test_db user
导出csv: mysqldump -u root -p**** --tab=D:/dataExport/ --fields-escaped-by=\ --fields-terminated-by=, --fields-enclosed-by=\" db_name tableName
如只想导出部分数据,加上 --where 参数,但是where中的条件如果是汉字,导不出数据,不知如何解决
参考文档:https://dev.mysql.com/doc/refman/5.6/en/mysqldump.html
上一篇: 使用二维数组打印一个10行的杨辉三角
下一篇: cleancode思想-函数篇
推荐阅读
-
mysqldump工具使用帮助文档(mysql数据库备份)
-
MySQL的备份工具mysqldump的基础使用命令总结
-
MySQL的备份工具mysqldump的基础使用命令总结
-
MySQL工具系列 – mysqldump:数据库备份程序
-
使用mysqldump定时备份数据库的脚本_MySQL
-
浅谈mysqldump使用方法(MySQL数据库的备份与恢复)
-
浅谈mysqldump使用方法(MySQL数据库的备份与恢复)
-
Centos7中MySQL数据库使用mysqldump进行每日自动备份的编写
-
使用mysqldump对数据库进行备份的乱码问题_MySQL
-
使用mysql数据库的mysqldump实现自动备份_MySQL