### 23.5.31 ndbxfrm - 压缩、解压缩、加密和解密

NDB Cluster 创建的文件

[](<>)

这[**ndbxfrm**](mysql-cluster-programs-ndbxfrm.html)NDB 8.0.22 中引入的实用程序可用于解压缩、解密和输出有关 NDB Cluster 创建的压缩、加密或两者的文件的信息。它还可以用于压缩或加密文件。

[](<>)

**表 23.51 与程序 ndbxfrm 一起使用的命令行选项**

| 格式 | 描述 | 添加、弃用或删除 |
| --- | --- | -------- |
| `[--compress](mysql-cluster-programs-ndbxfrm.html#option_ndbxfrm_compress)`,<br/><br/>`[-c](mysql-cluster-programs-ndbxfrm.html#option_ndbxfrm_compress)` | 压缩文件 | 添加：新开发银行 8.0.22 |
| `[--decrypt-password=password](mysql-cluster-programs-ndbxfrm.html#option_ndbxfrm_decrypt-password)` | 使用此密码解密文件 | 添加：新开发银行 8.0.22 |
| `[--decrypt-password-from-stdin](mysql-cluster-programs-ndbxfrm.html#option_ndbxfrm_decrypt-password-from-stdin)` | 从 STDIN 以安全的方式获取解密密码 | 添加：新开发银行 8.0.24 |
| `[--defaults-extra-file=path](mysql-cluster-programs-ndbxfrm.html#option_ndbxfrm_defaults-extra-file)` | 读取全局文件后读取给定文件 | （所有基于 MySQL 8.0 的 NDB 版本都支持） |
| `[--defaults-group-suffix=string](mysql-cluster-programs-ndbxfrm.html#option_ndbxfrm_defaults-group-suffix)` | 还阅读带有 concat(group, suffix) 的组 | （所有基于 MySQL 8.0 的 NDB 版本都支持） |
| `[--defaults-file=path](mysql-cluster-programs-ndbxfrm.html#option_ndbxfrm_defaults-file)` | 仅从给定文件中读取默认选项 | （所有基于 MySQL 8.0 的 NDB 版本都支持） |
| `[--encrypt-block-size=#](mysql-cluster-programs-ndbxfrm.html#option_ndbxfrm_encrypt-block-size)` | 作为一个单元加密的输入数据块的大小。与 XTS 一起使用，对于 CBC 模式设置为零 | 添加：新开发银行 8.0.29 |
| `[--encrypt-cipher=#](mysql-cluster-programs-ndbxfrm.html#option_ndbxfrm_encrypt-cipher)` | 加密密码：1 用于 CBC，2 用于 XTS | 添加：新开发银行 8.0.29 |
| `[--encrypt-kdf-iter-count=#](mysql-cluster-programs-ndbxfrm.html#option_ndbxfrm_encrypt-kdf-iter-count)`,<br/><br/>`[-k #](mysql-cluster-programs-ndbxfrm.html#option_ndbxfrm_encrypt-kdf-iter-count)` | 键定义中使用的迭代次数 | 添加：新开发银行 8.0.22 |
| `[--encrypt-password=password](mysql-cluster-programs-ndbxfrm.html#option_ndbxfrm_encrypt-password)` | 使用此密码加密文件 | 添加：新开发银行 8.0.22 |
| `[--encrypt-password-from-stdin](mysql-cluster-programs-ndbxfrm.html#option_ndbxfrm_encrypt-password-from-stdin)` | 从 STDIN 以安全的方式获取加密密码 | 添加：新开发银行 8.0.24 |
| `[--help](mysql-cluster-programs-ndbxfrm.html#option_ndbxfrm_help)`,<br/><br/>`[-?](mysql-cluster-programs-ndbxfrm.html#option_ndbxfrm_help)` | 打印使用信息 | 添加：新开发银行 8.0.22 |
| `[--info](mysql-cluster-programs-ndbxfrm.html#option_ndbxfrm_info)`,<br/><br/>`[-i](mysql-cluster-programs-ndbxfrm.html#option_ndbxfrm_info)` | 打印文件信息 | 添加：新开发银行 8.0.22 |
| `[--login-path=path](mysql-cluster-programs-ndbxfrm.html#option_ndbxfrm_login-path)` | 从登录文件中读取给定路径 | （所有基于 MySQL 8.0 的 NDB 版本都支持） |
| `[--no-defaults](mysql-cluster-programs-ndbxfrm.html#option_ndbxfrm_no-defaults)` | 不要从登录文件以外的任何选项文件中读取默认选项 | （所有基于 MySQL 8.0 的 NDB 版本都支持） |
| `[--print-defaults](mysql-cluster-programs-ndbxfrm.html#option_ndbxfrm_print-defaults)` | 打印程序参数列表并退出 | （所有基于 MySQL 8.0 的 NDB 版本都支持） |
| `[--usage](mysql-cluster-programs-ndbxfrm.html#option_ndbxfrm_usage)`,<br/><br/>`[-?](mysql-cluster-programs-ndbxfrm.html#option_ndbxfrm_usage)` | 打印使用信息；--help 的同义词 | 添加：新开发银行 8.0.22 |
| `[--version](mysql-cluster-programs-ndbxfrm.html#option_ndbxfrm_version)`,<br/><br/>`[-V](mysql-cluster-programs-ndbxfrm.html#option_ndbxfrm_version)` | 输出版本信息 | 添加：新开发银行 8.0.22 |

#### 用法

```
ndbxfrm --info file[ file ...]

ndbxfrm --compress input_file output_file

ndbxfrm --decrypt-password=password input_file output_file

ndbxfrm [--encrypt-ldf-iter-count=#] --encrypt-password=password input_file output_file
```

*`输入文件`*和*`输出文件`*不能是同一个文件。

#### 选项

-   [](<>) `- 压缩`,`-c`

    [](<>)[](<>)

    使用与压缩 NDB Cluster 备份相同的压缩方法压缩输入文件，并将输出写入输出文件。解压缩压缩文件`新开发银行`未加密的备份文件，只需调用[**ndbxfrm**](mysql-cluster-programs-ndbxfrm.html)使用压缩文件和输出文件的名称（不需要任何选项）。

-   [](<>) `--解密密码=*`密码`*`

    [](<>)[](<>)

    解密被加密的文件`新开发银行`使用提供的密码。

-   [](<>) `--decrypt-password-from-stdin[=TRUE|FALSE]`

    [](<>)[](<>)

    解密被加密的文件`新开发银行`，使用标准输入提供的密码。这类似于调用后输入密码[**mysql**](mysql.html) [`- 密码`](mysql-command-options.html#option_mysql_password)选项后没有密码。

-   [](<>) `--defaults-额外文件`

    [](<>)[](<>)

    | 命令行格式 | `--defaults-extra-file=路径` |
    | ----- | -------------------------- |
    | 类型 | 细绳 |
    | 默认值 | `[没有]` |

    读取全局文件后读取给定文件。

-   [](<>) `--defaults 文件`

    [](<>)[](<>)

    | 命令行格式 | `--defaults-file=路径` |
    | ----- | -------------------- |
    | 类型 | 细绳 |
    | 默认值 | `[没有]` |

    仅从给定文件中读取默认选项。

-   [](<>) `--defaults-组后缀`

    [](<>)[](<>)

    | 命令行格式 | `--defaults-group-suffix=字符串` |
    | ----- | ----------------------------- |
    | 类型 | 细绳 |
    | 默认值 | `[没有]` |

    还可以阅读带有 concat(group, suffix) 的组。

-   [](<>) `--加密块大小=*`#`*`

    [](<>)[](<>)

    作为一个单元加密的输入数据块的大小。与 XTS 一起使用；调成`0`（默认）用于 CBC 模式。

-   [](<>) `--加密密码=*`#`*`

    [](<>)[](<>)

    用于加密的密码。调成`1`对于 CBC 模式（默认），或`2`对于 XTS。

-   [](<>) `--encrypt-kdf-iter-count=*`#`*`,`-k *`#`*`

    [](<>)[](<>)

    加密文件时，指定用于加密密钥的迭代次数。需要[`--加密密码`](mysql-cluster-programs-ndbxfrm.html#option_ndbxfrm_encrypt-password)选项。

-   [](<>) `--加密密码=*`密码`*`

    [](<>)[](<>)

    使用选项提供的密码加密备份文件。密码必须满足此处列出的要求：

    -   使用任何可打印的 ASCII 字符，除了`！`,`'`,`"`,`$`,`%`,`\`, \```， 和`^`

    -   长度不超过 256 个字符

    -   用单引号或双引号括起来

-   [](<>) `--encrypt-password-from-stdin[=TRUE|FALSE]`

    [](<>)[](<>)

    使用标准输入提供的密码加密文件。这类似于在调用后输入密码[**mysql**](mysql.html) [`- 密码`](mysql-command-options.html#option_mysql_password)选项后没有密码。

-   [](<>) `- 帮助`,`-？`

    [](<>)[](<>)

    打印程序的使用信息。

-   [](<>) `- 信息`,`-一世`

    [](<>)[](<>)

    打印有关一个或多个输入文件的以下信息：

    -   文件名

    -   文件是否被压缩（`压缩=是`要么`压缩=否`)

    -   文件是否加密（`加密=是`要么`加密=否`)

        例子：

    ```
    $> ndbxfrm -i BACKUP-10-0.5.Data BACKUP-10.5.ctl BACKUP-10.5.log
    File=BACKUP-10-0.5.Data, compression=no, encryption=yes
    File=BACKUP-10.5.ctl, compression=no, encryption=yes
    File=BACKUP-10.5.log, compression=no, encryption=yes
    ```

-   [](<>) `--登录路径`

    [](<>)[](<>)

    | 命令行格式 | `--登录路径=路径` |
    | ----- | ----------- |
    | 类型 | 细绳 |
    | 默认值 | `[没有]` |

    从登录文件中读取给定的路径。

-   [](<>) `--no-defaults`

    [](<>)[](<>)

    | 命令行格式 | `--no-defaults` |
    | ----- | --------------- |

    不要从登录文件以外的任何选项文件中读取默认选项。

-   [](<>) `--打印默认值`

    [](<>)[](<>)

    | 命令行格式 | `--打印默认值` |
    | ----- | --------- |

    打印程序参数列表并退出。

-   [](<>) `- 用法`,`-？`

    [](<>)[](<>)

    同义词[`- 帮助`](mysql-cluster-programs-ndbxfrm.html#option_ndbxfrm_help).

-   [](<>) `- 版本`,`-V`

    [](<>)[](<>)

    打印出版本信息。

[**ndbxfrm**](mysql-cluster-programs-ndbxfrm.html)可以加密由任何版本的 NDB Cluster 创建的备份。这`。数据`,`.ctl`， 和`。日志`包含备份的文件必须单独加密，并且这些文件必须为每个数据节点单独加密。加密后，此类备份只能通过以下方式解密[**ndbxfrm**](mysql-cluster-programs-ndbxfrm.html),[**数据库\_恢复**](mysql-cluster-programs-ndb-restore.html)， 要么**数据库\_打印\_备份**从 NDB Cluster 8.0.22 或更高版本。

加密文件可以使用新密码重新加密[`--加密密码`](mysql-cluster-programs-ndbxfrm.html#option_ndbxfrm_encrypt-password)和[`--解密密码`](mysql-cluster-programs-ndbxfrm.html#option_ndbxfrm_decrypt-password)选项一起，像这样：

```
ndbxfrm --decrypt-password=old --encrypt-password=new input_file output_file
```

在刚刚显示的示例中，*`老的`*和*`新的`*分别是旧密码和新密码；这两个都必须引用。输入文件被解密然后加密为输出文件。输入文件本身没有改变；如果您不希望使用旧密码访问它，则必须手动删除输入文件。
