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

导出一个表:

1

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 < backup-file.sql.gz | mysql -uusername -ppassword dbname

导入数据库:

mysql> use target_dbname

mysql> source /mysql/backup/path/backup-file.sql

$ mysql target_dbname <backup-file.sql

导入还有一个mysqlimport命令,暂未研究。

直接从一个数据库向另一个数据库转储:

mysqldump -u用户名 -p --opt dbname | mysql --host remote_host -C dbname2

MySQL备份命令mysqldump参数说明与示例的更多相关文章

  1. MySQL备份与还原详细过程示例

    MySQL备份与还原详细过程示例 一.MySQL备份类型 1.热备份.温备份.冷备份 (根据服务器状态) 热备份:读.写不受影响: 温备份:仅可以执行读操作: 冷备份:离线备份:读.写操作均中止: 2 ...

  2. mysql备份命令

    mysql备份命令如下: 备份多个数据库可以使用如下命令: mysqldump -uroot -p123456 --databases test1 test2 test3 > /home/tes ...

  3. MySQL 备份脚本--mysqldump在slave 上进行备份

    MySQL 备份脚本--mysqldump在slave 上进行备份 使用mysqldump在slave上进行备份,建议使用stop slave sql_thread,start slave sql_t ...

  4. MySQL备份还原——mysqldump工具介绍

    mysqldump是一款MySQL逻辑备份的工具,他将数据库里面的对象(表)导出成SQL脚本文件.有点类似于SQL SEVER的"任务-生成脚本"的逻辑备份功能.mysqldump ...

  5. Mysql 备份恢复之 Mysqldump 工具

    目前正在学习中,看到mysqldump工具导出的数据都是文本形式的,如果是blob或text大对象类型导出的是什么格式的?这个需要后续研究.下面只先总结下简单的. 一.备份1.备份Mysql一个数据库 ...

  6. Mysql备份工具mysqldump和mysqlhotcopy

    (1).Mysql备份类型 1)按照备份时对数据库的影响分为 Hot backup(热备):也叫在线备份.指在数据库运行中直接备份,对正在运行的数据库没有任何影响. Cold backup(冷备):也 ...

  7. Mysql备份迁移——Mysqldump(.NET调用Mysqldump.exe方式)——(解决视图嵌视图报错)

    利用Mysqldump备份和迁移,我想很多人都用过,具体参数不介绍了,这里主要讲.NET调用Mysqldump进行备份和.NET调用Mysql.exe进行导入数据. 这里使用的是5.1版的Mysqld ...

  8. MySQL备份恢复-mysqldump原理

    +++++++++++++++++++++++++++++++++++++++++++标题:mysqldump对MySQL数据库备份恢复原理时间:2019年2月23日内容:mysqldump工具重点: ...

  9. mysql备份脚本-mysqldump

    背景:全库备份 备份流程: 1.生成DB列表,将DB名字写入文件 2.定义备份函数,结果写入SQL文件 3.压缩文件,减少磁盘占用量 4.设置保留天数,定期删除n天之前的 5.通过for循环读取DB列 ...

随机推荐

  1. Python 学习文章收藏

    作者 标题 rollenholt Python修饰器的函数式编程 - Rollen Holt - 博客园 rollenholt python操作gmail - Rollen Holt - 博客园 ro ...

  2. EDM制作要点

    EDM是Email Direct Marketing的缩写,虽然也是html,但是和我们在网页上使用的html不同,因为安全原因,各大邮箱服务商级邮件客户端都会对邮件内容进行一定程度上的处理,不会按照 ...

  3. Java static 的一两点使用

    这篇文章是关于Java static关键字的使用,主要会介绍以下的内容: static 的概念 static的各种应用 总结 static 是什么 static 顾名思义是静态的意思.与this相对, ...

  4. PowerDesigner成功生成PDM进行check model后的错误提示解决途径

    1.existence of reference join------->缺少主键; 2.constraint name uniquesness-------->关联约束重名(refere ...

  5. ASP.NET Core 1.1 静态文件、路由、自定义中间件、身份验证简介

    概述 之前写过一篇关于<ASP.NET Core 1.0 静态文件.路由.自定义中间件.身份验证简介>的文章,主要介绍了ASP.NET Core中StaticFile.Middleware ...

  6. python django基础(二)

    django MTV模式之----template模版 django是动态的网页,后台的数据需要动态的插入到前端中,这时就依赖于django的template模版框架.django支持多种模版框架,下 ...

  7. 【初恋】vue单页应用开发总结

    vue新人,没有高级技巧 本文主要总结了使用vue-cli脚手架安装开发环境,使用vue.js等进行单页应用开发所遇问题的总结. 技术栈: Vue v1.0.21, vue-resource v0.9 ...

  8. Entity Framework Code First实体关联数据加载

    在项目过程中,两个实体数据之间在往往并非完全独立的,而是存在一定的关联关系,如一对一.一对多及多对多等关联.存在关联关系的实体,经常根据一个实体的实例来查询获取与之关联的另外实体的实例. Entity ...

  9. 【WP8.1开发】用手机来控制电脑的多媒体播放

    为了用电脑看电影时方便控制,我就突发其想,做一个手机app来通过无线网络远程调节电脑上的音量.后来进行尝试成功后,我就想,光是调音量似乎单调了些,就把播放/暂停,上一首,下一首,等多媒体控制功能也加上 ...

  10. .NET平台开源项目速览(9)软件序列号生成组件SoftwareProtector介绍与使用

    在文章:这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧!(第二辑)中,给大家初步介绍了一下Software Protector序列号生成组件.今天就通过一篇简单的文章来预览一下其强大的功 ...