mysql dump参数有什么作用

53次阅读
没有评论

共计 2513 个字符,预计需要花费 7 分钟才能阅读完成。

本篇内容介绍了“mysql dump 参数有什么作用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让丸趣 TV 小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

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 差不多是禁用上面的选项。
执行备份数据库表结构时,指定了 –skip-opt 选项,相当于禁用下面几个参数:
–add-drop-table, –add-locks,
–create-options, –quick, –extended-insert,
–lock-tables, –set-charset, and –disable-keys

-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_name 和 USE db_name 语句包含在每个新数据库前的输出中。

–tables
覆盖 –database 选项。选项后面的所有参量被看作表名。

-u[name], –user=
连接服务器时使用的 MySQL 用户名。

-p

  此处含有隐藏内容,需要正确输入密码后可见!

, –password[=password]
连接服务器时使用的密码。如果你使用短选项形式(-p),不能在选项和密码之间有一个空格。如果在命令行中,忽略了 –password 或 - p 选项后面的 密码值,将提示你输入一个。

“mysql dump 参数有什么作用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注丸趣 TV 网站,丸趣 TV 小编将为大家输出更多高质量的实用文章!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-24发表,共计2513字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)