10bet网址
MySQL 5.7参考手册
相关的文档10bet官方网站 下载本手册
PDF(美国高级主任)- 36.4 mb
PDF (A4)- 36.4 mb
PDF (RPM)- 35.7 mb
HTML下载(TGZ)- 9.5 mb
HTML下载(Zip)- 9.5 mb
HTML下载(RPM)- 8.2 mb
手册页(TGZ)- 235.5 kb
手册页(Zip)- 347.0 kb
信息(Gzip)- 3.3 mb
信息(邮政编码)- 3.3 mb
本手册节选

MySQL 5.7参考手册/.../ mysqldump是一个数据库备份程序

4.5.4 mysqldump—数据库备份程序

, mysqldump客户端实用程序执行, mysqldump命令还可以生成CSV、其他带分隔符的文本或XML格式的输出。


连接选项

, mysqldump命令登录到MySQL服务器以提取信息。以下选项指定如何在同一台机器上或远程系统上连接到MySQL服务器。

  • ——bind-address =ip_address

    在具有多个网络接口的计算机上,使用此选项选择用于连接MySQL服务器的接口。

  • ——压缩- c

    如果可能,压缩客户端和服务器之间发送的所有信息。看到

    ——default-auth =插件

    关于使用哪个客户端身份验证插件的提示。看到

    ——enable-cleartext-plugin

    启用mysql_clear_password明文身份验证插件。(见

    ——get-server-public-key

    从服务器请求基于RSA密钥对的密码交换所需的公钥。属性进行身份验证的客户机应用此选项caching_sha2_password身份验证插件。对于该插件,服务器不发送公钥,除非请求。对于没有使用该插件进行身份验证的帐户,该选项将被忽略。如果不使用基于rsa的密码交换,它也会被忽略,就像客户端使用安全连接连接到服务器时一样。

    如果——server-public-key-path =file_name并指定有效的公钥文件,它优先于——get-server-public-key

    有关caching_sha2_password插件,看到——get-server-public-key选项是在MySQL 5.7.23中添加的。

  • ——主机=host_name- hhost_name

    从给定主机上的MySQL服务器转储数据。默认主机为本地主机

  • ——登录路径=的名字

    中的指定登录路径中读取选项.mylogin.cnf登录路径文件。一个登录路径是一个选项组,包含指定要连接到哪个MySQL服务器以及要验证为哪个帐户的选项。要创建或修改登录路径文件,请使用mysql_config_editor实用程序。看到

    ——密码(=密码- p (密码

    连接服务器时使用的MySQL帐户密码。密码为可选配置。如果没有给出,, mysqldump提示一个。如果给出了,就一定有没有空间之间的——密码=- p密码跟在后面。如果未指定密码选项,则默认为不发送密码。

    在命令行上指定密码应该被认为是不安全的。要避免在命令行中输入密码,请使用选项文件。看到, mysqldump不应该提示一个,使用——skip-password选择。

  • ——管- w

    在Windows上,使用命名管道连接到服务器。属性启动服务器时,此选项才适用named_pipe系统变量启用支持命名管道连接。属性指定的Windows组的成员named_pipe_full_access_group系统变量。

  • ——plugin-dir =dir_name

    查找插件的目录。属性时指定此选项——default-auth选项用于指定身份验证插件, mysqldump没有找到它。看到

    ——港口=port_num- pport_num

    对于TCP/IP连接,要使用的端口号。

  • ——协议= {TCP套接字| | |内存管}

    用于连接到服务器的传输协议。当其他连接参数通常导致使用与您想要的协议不同的协议时,它很有用。有关允许值的详细信息,请参见

    ——secure-auth

    不要以旧格式(4.1之前)发送密码到服务器。这将阻止除使用新密码格式的服务器之外的连接。

    从MySQL 5.7.5开始,这个选项已被弃用;希望它在未来的MySQL版本中被移除。它总是被启用,并试图禁用它(——skip-secure-auth——secure-auth = 0)会产生错误。在MySQL 5.7.5之前,该选项默认启用,但可以禁用。

    请注意

    使用4.1之前的哈希方法的密码不如使用本机密码哈希方法的密码安全,应该避免使用。4.1之前的密码已弃用,在MySQL 5.7.5中已删除对它们的支持。有关帐户升级说明,请参见

    ——server-public-key-path =file_name

    PEM格式文件的路径名,其中包含服务器进行基于RSA密钥对的密码交换所需的公钥的客户端副本。属性进行身份验证的客户机应用此选项sha256_passwordcaching_sha2_password身份验证插件。对于没有使用这些插件之一进行身份验证的帐户,该选项将被忽略。如果不使用基于rsa的密码交换,它也会被忽略,就像客户端使用安全连接连接到服务器时一样。

    如果——server-public-key-path =file_name并指定有效的公钥文件,它优先于——get-server-public-key

    sha256_password,此选项仅适用于使用OpenSSL构建MySQL。

    有关sha256_password而且caching_sha2_password插件,看到——server-public-key-path选项是在MySQL 5.7.23中添加的。

  • ——套接字=路径- s路径

    连接到本地主机例如,要使用的Unix套接字文件,或者在Windows上,要使用的命名管道的名称。

    在Windows上,此选项仅在服务器使用named_pipe系统变量启用支持命名管道连接。属性指定的Windows组的成员named_pipe_full_access_group系统变量。

  • ——ssl *

    选项以——ssl指定是否使用加密连接到服务器,并指出在何处查找SSL密钥和证书。看到

    ——tls =protocol_list

    加密连接所允许的TLS协议。一个或多个以逗号分隔的协议名称的列表。可以为此选项命名的协议取决于用于编译MySQL的SSL库。详细信息请参见

    ——用户=user_name- uuser_name

    用于连接服务器的MySQL帐户的用户名。

设置文件选项

这些选项用于控制要读取的选项文件。

  • ——defaults-extra-file =file_name

    读取这个选项文件在全局选项文件之后,但(在Unix上)在用户选项文件之前。如果文件不存在或无法访问,则会发生错误。如果file_name不是绝对路径名,它是相对于当前目录解释的。

    有关此选项和其他选项文件选项的详细信息,请参见

    ——defaults-file =file_name

    只使用给定的选项文件。如果文件不存在或无法访问,则会发生错误。如果file_name不是绝对路径名,它是相对于当前目录解释的。

    例外:即使与——defaults-file,客户端程序读取.mylogin.cnf

    有关此选项和其他选项文件选项的详细信息,请参见

    ——defaults-group-suffix =str

    不仅要阅读常用的选项组,还要阅读具有常用名称和后缀为的组str.例如,, mysqldump通常读取(客户端)而且(, mysqldump)组。如果此选项为——defaults-group-suffix = _other, mysqldump也读取(client_other)而且(mysqldump_other)组。

    有关此选项和其他选项文件选项的详细信息,请参见

    ——已

    不要读取任何选项文件。如果从选项文件中读取未知选项导致程序启动失败,——已可用于防止它们被读取。

    唯一的例外是.mylogin.cnf文件在所有情况下都被读取,如果它存在的话。这允许以比在命令行上更安全的方式指定密码——已使用。创建.mylogin.cnf,使用mysql_config_editor实用程序。看到

    ——print-defaults

    打印程序名称和它从选项文件中获得的所有选项。

    有关此选项和其他选项文件选项的详细信息,请参见DDL选项

    的使用场景, mysqldump包括建立一个全新的MySQL实例(包括数据库表),用现有的数据库和表替换现有实例中的数据。通过在转储文件中编码各种DDL语句,以下选项允许您指定在恢复转储时要删除和设置哪些内容。

    调试选项

    以下选项打印调试信息、在转储文件中编码调试信息,或者不管潜在的问题都让转储操作继续进行。

    • ——允许关键字

      允许创建作为关键字的列名。这是通过在每个列名前面加上表名来实现的。

    • ——评论-我

      在转储文件中写入附加信息,如程序版本、服务器版本和主机。该选项默认启用。要抑制这些额外信息,请使用——skip-comments

    • ——调试(=debug_options- # (debug_options

      编写调试日志。一个典型的debug_options字符串是d:师:啊,file_name.默认值为d:师:啊,/ tmp / mysqldump.trace

      此选项仅在MySQL使用WITH_DEBUG.Oracle提供的MySQL版本二进制文件使用此选项构建。

    • ——debug-check

      当程序退出时打印一些调试信息。

      此选项仅在MySQL使用WITH_DEBUG.Oracle提供的MySQL版本二进制文件使用此选项构建。

    • ——debug-info

      在程序退出时打印调试信息以及内存和CPU使用统计信息。

      此选项仅在MySQL使用WITH_DEBUG.Oracle提供的MySQL版本二进制文件使用此选项构建。

    • ——dump-date

      如果——评论给出了选项,, mysqldump在以下表单转储的末尾生成注释:

      —转储完成于日期

      但是,日期会导致在不同时间获取的转储文件看起来不同,即使数据在其他方面是相同的。——dump-date而且——skip-dump-date控制是否将日期添加到注释。默认为——dump-date(在评论中注明日期)。——skip-dump-date抑制日期打印。

    • ——力- f

      忽略所有错误;即使在表转储期间发生SQL错误,也要继续。

      这个选项的一个用途是引起, mysqldump即使当它遇到一个因为定义引用了一个已经被删除的表而变得无效的视图时,也要继续执行。没有——力, mysqldump退出并显示错误消息。与——力, mysqldump打印错误消息,但它还将包含视图定义的SQL注释写入转储输出并继续执行。

      如果——ignore-error选项还可以忽略特定的错误,——力优先。

    • ——日志错误=file_name

      通过将警告和错误追加到指定文件来记录它们。默认情况下是不进行日志记录。

    • ——skip-comments

      的描述——评论选择。

    • ——详细- v

      详细的模式。打印有关程序功能的更多信息。

    帮助选项

    属性的相关信息, mysqldump命令本身。

    • ——帮助-?

      显示帮助信息并退出。

    • ——版本- v

      显示版本信息并退出。

    国际化的选择

    的方式, mysqldump命令表示具有国家语言设置的字符数据。

    复制选项

    , mysqldump命令经常用于在复制配置中的副本服务器上创建空实例或包含数据的实例。以下选项适用于在复制源服务器和复制服务器上转储和恢复数据。

    • ——apply-slave-statements

      类生成的副本转储——dump-slave选项,添加停止奴隶将master更改为语句和开始的奴隶语句在输出的末尾。

    • ——delete-master-logs

      在源复制服务器上,删除二进制日志清除二进制日志语句,在执行转储操作后发送给服务器。此选项需要重新加载特权以及足够执行该语句的特权。此选项自动启用——主数据

    • ——dump-slave [=价值

      此选项类似于——主数据除了用于转储复制复制服务器以生成转储文件,该转储文件可用于将另一个服务器设置为具有与转储服务器相同源的副本。它导致转储输出包含将master更改为语句,该语句指示转储副本源的二进制日志坐标(文件名和位置)。的将master更改为语句读取的值Relay_Master_Log_File而且Exec_Master_Log_Pos显示奴隶状态输出并将它们用于MASTER_LOG_FILE而且MASTER_LOG_POS分别。这些是副本应该开始复制的源服务器坐标。

      请注意

      中继日志中已执行的事务序列的不一致可能导致使用错误的位置。看到——dump-slave方法所做的那样,导致使用来自源的坐标而不是转储服务器的坐标——主数据选择。此外,指定此选项会导致——主数据选项,如果使用,将被覆盖,并有效地忽略。

      警告

      如果将要应用转储的服务器使用gtid_mode =对而且MASTER_AUTOPOSITION = 1

      选项值的处理方式与for相同——主数据(不设置值或设置为1会导致a将master更改为语句被写入转储,设置2导致语句被写入,但被SQL注释括起来),其效果与——主数据在启用或禁用其他选项以及如何处理锁定方面。

      此选项导致, mysqldump在转储之前停止复制SQL线程,并在转储之后重新启动它。

      ——dump-slave发送一个显示奴隶状态语句来获取信息,因此它需要足够的权限来执行该语句。

      连同——dump-slave,——apply-slave-statements而且——include-master-host-port也可以使用选项。

    • ——include-master-host-port

      将master更改为语句生成的副本转储——dump-slave选项,添加MASTER_HOST而且MASTER_PORT选项作为副本源的主机名和TCP/IP端口号。

    • ——主数据(=价值

      使用此选项可转储源复制服务器以生成转储文件,该文件可用于将另一个服务器设置为源的副本。它导致转储输出包含将master更改为转储服务器二进制日志坐标(文件名和位置)的语句。这些是源服务器坐标,在将转储文件加载到副本后,副本应该从这些坐标开始复制。

      如果选项值为2,则将master更改为语句被写成SQL注释,因此只提供信息;当重新加载转储文件时,它不起作用。如果选项值为1,则该语句不会作为注释写入,并在重新加载转储文件时生效。如果不指定选项值,默认值为1。

      ——主数据发送一个显示主机状态语句来获取信息,因此它需要足够的权限来执行该语句。该选项还需要重新加载必须启用特权和二进制日志。

      ——主数据选项自动关闭——锁表.它也会打开——lock-all-tables,除非——单独的事务在这种情况下,只在转储开始时短时间内获得全局读锁(参见——单独的事务).在所有情况下,对日志的任何操作都发生在转储的确切时刻。

      方法,也可以通过转储源的现有副本来设置副本——dump-slave选项,该选项覆盖——主数据并在使用两个选项时将其忽略。

    • ——set-gtid-purged =价值

      此选项通过指示是否添加全局事务ID (GTID)来控制写入转储文件的全局事务ID (GTID)信息设置@@GLOBAL.gtid_purged语句添加到输出。此选项还可能导致在重新加载转储文件时将语句写入输出,以禁用二进制日志记录。

      下表显示了允许的选项值。默认值为汽车

      价值 意义
      添加不语句添加到输出。
      添加一个语句添加到输出。如果服务器上没有启用gtid,将会发生错误。
      汽车 添加一个如果在服务器上启用了gtid,则返回到输出。

      从使用基于gtid的复制的服务器进行部分转储需要——set-gtid-purged ={|关闭}要指定的选项。使用如果打算仅使用转储服务器中的部分数据部署新的复制副本。使用如果目的是通过在拓扑中复制表来修复表。使用如果目的是在分离的复制拓扑之间复制一个表,并让它们保持这种状态。

      ——set-gtid-purged选项在重新加载转储文件时对二进制日志记录有以下影响:

      • ——set-gtid-purged =了设置@@SESSION.SQL_LOG_BIN = 0;未添加到输出中。

      • ——set-gtid-purged =设置@@SESSION.SQL_LOG_BIN = 0;被添加到输出中。

      • ——set-gtid-purged =汽车设置@@SESSION.SQL_LOG_BIN = 0;如果所备份的服务器上启用了gtid(即如果汽车计算结果为).

      请注意

      当服务器开启gtid功能时,不建议加载转储文件。gtid_mode =对),如果您的转储文件包括系统表。, mysqldump为使用非事务性MyISAM存储引擎的系统表发出DML指令,当启用gtid时,这种组合是不允许的。还要注意,从启用了gtid的服务器加载转储文件到启用了gtid的另一个服务器,会生成不同的事务标识符。

    格式选项

    以下选项指定如何表示整个转储文件或转储文件中的某些类型的数据。它们还控制是否将某些可选信息写入转储文件。

    • ——紧凑

      产生更紧凑的输出。此选项启用——skip-add-drop-table——skip-add-locks——skip-comments——skip-disable-keys,——skip-set-charset选项。

    • ——兼容=的名字

      生成与其他数据库系统或旧的MySQL服务器更兼容的输出。的价值的名字可以ansimysql323mysql40postgresql甲骨文该软件db2maxdbno_key_optionsno_table_options,或no_field_options.若要使用多个值,请用逗号分隔。这些值与设置服务器SQL模式的相应选项具有相同的含义。看到——= oracle兼容不将数据类型映射到Oracle类型,也不使用Oracle注释语法。

    • ——complete-insert- c

      使用完整的插入包含列名的语句。

    • ——提供些选择

      中包含所有特定于mysql的表选项创建表语句。

    • ——fields-terminated-by =…——fields-enclosed-by =…——fields-optionally-enclosed-by =…——fields-escaped-by =…

      属性一起使用这些选项——选项卡选项与对应选项具有相同的含义字段条款为加载数据.看到

      ——hex-blob

      使用十六进制表示法转储二进制列(例如,“abc”就变成了0 x616263).受影响的数据类型为二进制VARBINARY类型,、所有空间数据类型和其他非二进制数据类型(当与二进制字符集

    • ——lines-terminated-by =…

      选项一起使用——选项卡选项,与对应的具有相同的含义条款加载数据.看到

      ——quote-namesq

      引用标识符(如数据库、表和列名)字符。如果ANSI_QUOTES启用SQL模式,标识符将被引用字符。该选项默认启用。它可以被禁用——skip-quote-names,但该选项应在任何选项之后,如——兼容这可能使——quote-names

    • ——结果文件=file_name- rfile_name

      直接输出到指定文件。即使在生成转储时发生错误,也会创建结果文件并覆盖其先前的内容。

      这个选项应该在Windows上使用,以防止换行\ n未被转换为的字符\ r \ n回车/换行序列。

    • ——选项卡=dir_name- tdir_name

      生成制表符分隔的文本格式数据文件。对于每个转储表,, mysqldump创建一个tbl_name. sql文件,其中包含创建表语句,该语句创建表,服务器将写入tbl_name. txt包含其数据的文件。选项值是要写入文件的目录。

      请注意

      此选项仅在以下情况下使用, mysqldump在同一台机器上运行mysqld服务器。因为服务器创建了* . txt文件,该目录必须是可写的服务器和MySQL帐户,您使用的必须有文件特权。因为, mysqldump创建* . sql在同一目录下,必须由您的系统登录帐户可写。

      默认情况下,. txt数据文件的格式使用列值之间的制表符和每行末尾的换行符。方法显式指定格式——字段xxx而且——lines-terminated-by选项。

      属性指定的字符集——default-character-set选择。

    • ——tz-utc

      此选项启用时间戳要在不同时区的服务器之间转储和重新加载的列。, mysqldump将其连接时区设置为UTC并添加设置TIME_ZONE = 0 ' + '到转储文件。如果没有这个选项,时间戳在源和目标服务器的本地时区中转储和重新加载列,如果服务器处于不同的时区,则可能导致值发生更改。——tz-utc还可以防止夏令时造成的变化。——tz-utc默认启用。要禁用它,请使用——skip-tz-utc

    • ——xml- x

      将转储输出写入格式良好的XML。

      “零”,和空值:用于命名为column_name,值、空字符串和字符串值“零”在此选项生成的输出中彼此区别如下。

      值: XML表示:
      未知的价值

      <字段名= "column_nameXsi:nil="true" />

      空字符串

      <字段名= "column_name" > < > /字段

      “零”字符串值

      <字段名= "column_name“零< /字段> >

      的输出。mysql客户端运行时使用——xmlOption也遵循上述规则。(见, mysqldump包括XML命名空间,如下所示:

      —root world City <, mysqldumpxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">             1 Kabul AFG Kabol 1780000 ... 4079 Rafah PSE Rafah 92020    

    过滤选项

    以下选项控制将哪些类型的模式对象写入转储文件:按类别,例如触发器或事件;通过名称,例如,选择转储哪些数据库和表;属性从表数据中过滤行在哪里条款。

    • ——所有数据库——一个

      转储所有数据库中的所有表。这与使用——数据库选项,并在命令行上命名所有数据库。

    • ——数据库- b

      转储几个数据库。通常情况下,, mysqldump将命令行上的第一个name参数作为数据库名,将后面的名称作为表名。使用此选项,它将所有name参数视为数据库名称。创建数据库而且使用语句包含在每个新数据库之前的输出中。

      此选项可用于转储INFORMATION_SCHEMA而且performance_schema数据库,通常即使使用——所有数据库选择。(也可使用——skip-lock-tables选择。)

    • ——事件- e

      在输出中包括转储数据库的事件调度器事件。此选项需要事件这些数据库的特权。

      使用生成的输出——事件包含创建事件语句来创建事件。但是,这些语句不包括事件创建和修改时间戳等属性,因此当重新加载事件时,将使用等于重新加载时间的时间戳创建事件。

      如果您要求使用事件的原始时间戳属性创建事件,请不要使用——事件.类的内容被转储并重新加载mysql.event表,使用具有适当权限的MySQL帐户mysql数据库。

    • ——ignore-error =错误(错误)……

      忽略指定的错误。选项值是一个以逗号分隔的错误号列表,指定在期间忽略的错误, mysqldump执行。如果——力选项也可以忽略所有错误,——力优先。

    • ——ignore-table =db_name.tbl_name

      不要转储给定的表,必须同时使用数据库名和表名来指定。若要忽略多个表,请多次使用此选项。此选项也可用于忽略视图。

    • ——没有数据- d

      不要写入任何表行信息(即不要转储表内容)。类,这很有用创建表语句(例如,通过加载转储文件来创建表的空副本)。

    • ——例程- r

      在输出中包含转储数据库的存储例程(过程和函数)。此选项需要选择特权mysql.proc表格

      使用生成的输出——例程包含创建过程而且创建函数语句来创建例程。然而,这些语句不包括例程创建和修改时间戳等属性,因此当例程被重新加载时,它们被创建的时间戳等于重新加载时间。

      如果您要求使用它们的原始时间戳属性创建例程,请不要使用——例程.类的内容被转储并重新加载mysql.proc表,使用具有适当权限的MySQL帐户mysql数据库。

    • ——表

      覆盖——数据库- b选择。, mysqldump将选项后面的所有名称参数视为表名。

    • ——触发器

      在输出中包含每个转储表的触发器。默认情况下启用此选项;使用——skip-triggers

      为了能够转储表的触发器,必须具有触发表的特权。

      允许多个触发器。, mysqldump按激活顺序转储触发器,以便在重新加载转储文件时,触发器将按相同的激活顺序创建。然而,如果, mysqldump转储文件包含具有相同触发器事件和操作时间的表的多个触发器,当试图将转储文件加载到不支持多个触发器的旧服务器中时会发生错误。(有关变通方法,请参见

      ——= 'where_condition- w 'where_condition

      只转储由给定选择的行在哪里条件。如果条件包含对命令解释器特殊的空格或其他字符,则条件周围的引号是强制的。

      例子:

      ——where="user='jimf'" -w"userid>1" -w"userid<1"

    性能选项

    以下选项与性能尤其是恢复操作的性能最相关。对于大数据集,恢复操作(处理插入转储文件中的语句)是最耗时的部分。在需要快速恢复数据的情况下,可以提前对该阶段的性能进行规划和测试。对于以小时为单位的恢复时间,您可能更喜欢另一种备份和恢复解决方案,例如InnoDB-只使用和混合使用数据库。

    性能也受到

事务选项

以下选项将转储操作的性能与导出数据的可靠性和一致性进行权衡。

  • ——锁

    围绕每个表转储锁表而且打开表语句。这将导致在重新加载转储文件时更快地插入。看到

    ——flush-logs- f

    在开始转储之前,请刷新MySQL服务器日志文件。此选项需要重新加载特权。属性组合使用此选项——所有数据库选项,则将刷新日志对于每个转储的数据库.例外是在使用时——lock-all-tables——主数据,或——单独的事务:在这种情况下,日志只被刷新一次,对应于所有表被锁定的时间用读锁刷新表.如果希望转储和日志刷新在同一时刻发生,则应该使用——flush-logs在一起——lock-all-tables——主数据,或——单独的事务

  • ——flush-privileges

    添加一个冲洗的特权语句转换为转储输出mysql数据库。类时应使用此选项mysql数据库和依赖于中的数据的任何其他数据库mysql数据库进行适当的恢复。

    因为转储文件中包含冲洗的特权语句时,重新加载文件需要足够的权限来执行该语句。

    请注意

    从旧版本升级到MySQL 5.7或更高版本时,不要使用——flush-privileges.有关此情况下的升级说明,请参见

    ——lock-all-tables- x

    锁定所有数据库中的所有表。这是通过在整个转储期间获取全局读锁来实现的。这个选项会自动关闭——单独的事务而且——锁表

  • ——锁表- l

    对于每个转储的数据库,在转储它们之前锁定所有要转储的表。这些桌子被锁上了阅读当地的情况下允许并发插入MyISAM表。对于事务性表,例如InnoDB——单独的事务是更好的选择吗——锁表因为它根本不需要锁定表。

    因为——锁表单独锁定每个数据库的表,此选项不能保证转储文件中的表在数据库之间逻辑一致。不同数据库中的表可能以完全不同的状态被转储。

    一些选项,例如——选择,自动启用——锁表.如果你想覆盖这个,使用——skip-lock-tables在选项列表的末尾。

  • ——no-autocommit

    附上的插入语句中的每个转储表设置自动提交= 0而且提交语句。

  • ——order-by-primary

    转储每个表的行,按其主键排序,或按其第一个唯一索引排序(如果存在这样的索引)。这在转储对象时非常有用MyISAM表要加载到InnoDB表,但这会使转储操作花费相当长的时间。

  • ——shared-memory-base-name =的名字

    在Windows上,用于使用共享内存建立到本地服务器的连接的共享内存名称。默认值为MYSQL.共享内存名称区分大小写。

    属性启动服务器时,此选项才适用shared_memory启用支持共享内存连接的系统变量。

  • ——单独的事务

    此选项将事务隔离模式设置为可重复读取并发送一个开始事务在转储数据之前向服务器发送SQL语句。它只对事务性表有用,例如InnoDB,因为它会转储数据库在某个时刻的一致状态开始事务没有阻止任何申请。

    在使用此选项时,您应该只记住InnoDB表以一致状态转储。例如,任何MyISAM内存使用此选项转储的表仍然可能改变状态。

    而一个——单独的事务转储正在进行中,为了确保转储文件有效(正确的表内容和二进制日志坐标),其他连接不应该使用以下语句:ALTER TABLE创建表删除表重命名表截断表.一致的读取不会与这些语句隔离,因此在要转储的表上使用这些语句会导致选择这是由, mysqldump检索表内容以获取不正确的内容或失败。

    ——单独的事务选项和——锁表选项是互斥的,因为锁表导致隐式提交任何挂起的事务。

    要转储大表,请合并——单独的事务选项中的——快速选择。

选项组

  • ——选择选项将打开多个一起工作以执行快速转储操作的设置。所有这些设置都是默认开启的,因为——选择默认开启。因此你几乎不需要详细说明——选择.相反,您可以通过指定——skip-opt,可以通过稍后在命令行上指定相关选项来选择性地重新启用某些设置。

  • ——紧凑选项关闭几个设置,这些设置控制可选语句和注释是否出现在输出中。同样,您可以将此选项与其他选项一起使用,以重新启用某些设置,或使用——skip-compact的形式。

当您有选择地启用或禁用组选项的效果时,顺序很重要,因为选项是先到后处理的。例如,——disable-keys——锁表——skip-opt不会达到预期的效果;这和——skip-opt本身。

例子

备份整个数据库:

, mysqldumpdb_name>backup-file.sql

将转储文件加载回服务器。

mysqldb_name<backup-file.sql

另一种重载转储文件的方法:

Mysql -e "source/ path-to-backup backup-file.sqldb_name

, mysqldump通过将数据从一个MySQL服务器复制到另一个服务器来填充数据库也非常有用:

, mysqldump——选择db_name| mysql——host=remote_host- cdb_name

你可以用一个命令转储多个数据库:

, mysqldump——数据库db_name1db_name2...]>my_databases.sql

要转储所有数据库,请使用——所有数据库选择:

Mysqldump——all-databases > all_databases.sql

InnoDB表,, mysqldump提供一种在线备份的方法:

Mysqldump—all-databases—master-data—single-transaction > all_databases.sql

此备份在所有表上获得全局读锁(使用用读锁刷新表)在转储开始时。一旦获得了这个锁,就会读取二进制日志坐标并释放锁。时,如果长更新语句正在运行冲洗语句,MySQL服务器可能会停滞,直到这些语句完成。在此之后,转储不再锁定,并且不会影响对表的读写。如果MySQL服务器接收到的更新语句很短(就执行时间而言),初始锁定期应该不明显,即使有很多更新。

用于时间点恢复(也称为前滚,当您需要恢复旧备份并重放自该备份以来发生的更改时,旋转二进制日志通常很有用(请参阅Mysqldump——all-databases——master-data=2 > all_databases.sql

或者:

Mysqldump——all-databases——flush-logs——master-data=2 > all_databases.sql

——主数据而且——单独的事务选项可以同时使用,这提供了一种方便的方式,使在线备份适合在时间点恢复之前使用InnoDB存储引擎。

有关备份的详细信息,请参见

限制

, mysqldump不转储INFORMATION_SCHEMAperformance_schema,或sys默认为Schema。要转储其中任何一个,请在命令行上显式地命名它们。也可以使用——数据库选择。为INFORMATION_SCHEMA而且performance_schema,也使用——skip-lock-tables选择。

, mysqldump不转储NDB集群ndbinfo信息数据库。

, mysqldump不转储InnoDB创建表空间语句。

不建议从使用的转储进行恢复, mysqldump到启用了gtid的MySQL 5.6.9或更早版本的服务器。看到, mysqldump属性的语句general_log而且slow_query_log的转储的表mysql数据库。日志表内容不转储。

如果由于权限不足而在备份视图时遇到问题,请参见