mysqldump工具使用帮助文档(mysql数据库备份)

来源:互联网 发布:java 获取日期 编辑:程序博客网 时间:2024/06/06 02:41

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的值可以是 ansimysql323, mysql40postgresql
 
oraclemssql, db2maxdbno_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=dir_name, -T dir_name

--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


导出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 

阅读全文
1 0
原创粉丝点击