10、MySQL 8.0参考手册 4.5.3 mysqlcheck - 单个表维护程序

所述mysqlcheck的客户端执行表维护:它检查,修理,优化,或分析表。
 
 每个表被锁定,因此无法为其它会话正在被处理时,虽是检查操作,表是用一个锁READ锁只(见 第13.3.6,“LOCK TABLES和UNLOCK TABLES语法”,有关更多信息 READ和WRITE锁)。表维护操作可能非常耗时,特别是对于大型表格。如果使用 --databasesor --all-databases选项来处理一个或多个数据库中的所有表,那么调用 mysqlcheck可能需要很长时间。(对于mysql_upgrade也是如此,因为该程序调用mysqlcheck 检查所有表格并在必要时修理它们。)
 
 当 mysqld服务器正在运行时,必须使用 mysqlcheck,这意味着您不必停止服务器来执行表维护。
 
 的使用SQL语句 CHECK TABLE, REPAIR TABLE, ANALYZE TABLE,并 OPTIMIZE TABLE在用户的便捷方式。它确定要执行的操作使用哪些语句,然后将语句发送到服务器以执行。有关每个语句使用哪些存储引擎的详细信息,请参见第13.7.3节“表维护语句”中对这些语句的描述。
 

 所有存储引擎不一定支持全部四个维护操作。在这种情况下,会显示错误消息。例如,如果test.t是 MEMORY表,尝试检查它会产生以下结果:

shell> mysqlcheck test t
test.t
note     : The storage engine for the table doesn't support check
如果mysqlcheck无法修复表,请参见第2.10.3节“重建或修复表或索引”以了解手动表修复策略。例如,对于 InnoDB可以检查CHECK TABLE但不能修复的表格就是这种情况 REPAIR TABLE.

警告在执行表格修复操作之前,最好先备份表格; 在某些情况下,操作可能会导致数据丢失。可能的原因包括但不限于文件系统错误。

有三种通用的方法可以调用 mysqlcheck:

shell> mysqlcheck [options] db_name [tbl_name ...]
shell> mysqlcheck [options] --databases db_name ...
shell> mysqlcheck [options] --all-databases

如果您未命名任何表格 db_name或者使用 --databasesor --all-databases选项,则会检查整个数据库。

与其他客户端程序相比, mysqlcheck具有特殊功能。检查tables(--check的默认行为可以通过重命名二进制文件来改变。如果你想有一个工具,修复表默认情况下,你应该做的副本 mysqlcheck的命名 mysqlrepair,可,或者做一个符号链接 mysqlcheck的命名 mysqlrepair,可如果你调用 mysqlrepair,它会修复表。

下表中显示的名称可用于更改 mysqlcheck的默认行为。

命令 含义
mysqlrepair,可 默认选项是 --repair
mysqlanalyze 默认选项是 --analyze
mysqloptimize 默认选项是 --optimize

mysqlcheck的支持下面的选项,可以在命令行或在指定 [mysqlcheck][client] 一个选项文件的组。有关MySQL程序使用的选项文件的信息,请参见第4.2.6节“使用选项文件”

表4.10 mysqlcheck选项

格式 描述 介绍 删除
- 全数据库 检查所有数据库中的所有表    
--all合1 为每个数据库执行一条语句,该语句为该数据库中的所有表命名    
- 分析 分析表格    
- 自动修理 如果检查表损坏,自动修复它    
--bind地址 使用指定的网络接口连接到MySQL服务器    
--character集-DIR 安装字符集的目录    
--check 检查表格是否有错误    
--check-唯一改变的 只检查自上次检查后更改的表格    
--check升级 用FOR UPGRADE选项调用CHECK TABLE    
- 压缩 压缩客户端和服务器之间发送的所有信息    
--databases 将所有参数解释为数据库名称    
--debug 编写调试日志    
--debug检查 程序退出时打印调试信息    
- 调试信息 打印程序退出时的调试信息,内存和CPU统计信息    
--default-AUTH 身份验证插件使用    
--default-字符集 指定默认字符集    
--defaults-额外文件 除了通常的选项文件外,还可以读取已命名的选项    
--defaults文件 只读取命名的选项文件    
--defaults基团的后缀 选项组后缀值    
--enable-明文-插件 启用明文身份验证插件    
--extended 检查并修复表格    
- 快速 只检查没有正确关闭的表格    
- 力 即使发生SQL错误也继续    
--get-服务器的公钥 从服务器请求RSA公钥 8.0.3  
- 帮帮我 显示帮助信息并退出    
- 主办 连接到给定主机上的MySQL服务器    
--login路径 阅读.mylogin.cnf中的登录路径选项    
--medium检查 做一个比--extended操作快的检查    
--no-默认 不读取任何选项文件    
--optimize 优化表格    
- 密码 连接到服务器时使用的密码    
- 管 在Windows上,使用命名管道连接到服务器    
--plugin-DIR 安装插件的目录    
- 港口 用于连接的TCP / IP端口号    
--print-默认 打印默认选项    
- 协议 使用连接协议    
- 快 最快的检查方法    
- 修理 执行修复可以修复几乎除了唯一键的唯一键以外的任何内容    
--secure-auth的 不要以旧(4.1以前)格式向服务器发送密码   8.0.3
--server-公钥路径 包含RSA公钥的文件的路径名称 8.0.4  
--shared存储器碱基名 用于共享内存连接的共享内存的名称    
- 无声 静音模式    
--skip-数据库 从执行的操作中省略此数据库    
- 插座 用于连接到localhost,要使用的Unix套接字文件    
--ssl-CA 包含可信SSL证书颁发机构列表的文件    
--ssl-capath 包含可信SSL证书颁发机构证书文件的目录    
--ssl证书 包含X509证书的文件    
--ssl-密码 允许连接加密的密码列表    
--ssl-CRL 包含证书吊销列表的文件    
--ssl-crlpath 包含证书撤销列表文件的目录    
--ssl键 包含X509密钥的文件    
--ssl模式 连接到服务器的安全状态    
--tables 覆盖--databases或-B选项    
--tls版本 允许加密连接的协议    
--use-FRM 用于MyISAM表格的修复操作    
- 用户 连接到服务器时使用的MySQL用户名    
--verbose 详细模式    
- 版 显示版本信息并退出    
--write,二进制日志 将ANAL ANALYZE,OPTIMIZE,REPAIR语句记录到二进制日志。--skip-write-binlog将NO_WRITE_TO_BINLOG添加到这些语句中。    

  • --help, -?

    显示帮助信息并退出。

  • --all-databases, -A

    检查所有数据库中的所有表。这与--databases在命令行中使用选项并命名所有数据库相同,只是未检查INFORMATION_SCHEMA和 performace_schema数据库。可以通过使用--databases选项明确命名它们来检查它们

  • --all-in-1, -1

    不是为每个表发布语句,而是为每个数据库执行一条语句,该语句将命名该数据库中的所有表以进行处理。

  • --analyze, -a

    分析表格。

  • --auto-repair

    如果检查表损坏,自动修复它。所有必要的修理都在所有表格检查完成后完成。

  • --bind-address=ip_address

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

  • --character-sets-dir=dir_name

    安装字符集的目录。请参见 第10.14节“字符集配置”

  • --check, -c

    检查表格是否有错误。这是默认操作。

  • --check-only-changed, -C

    只检查自上次检查后已更改或尚未正确关闭的表格。

  • --check-upgrade, -g

    调用CHECK TABLE与 FOR UPGRADE检查表的不兼容问题与服务器的当前版本的选项。

  • --compress

    压缩客户端和服务器之间发送的所有信息(如果两者均支持压缩)。

  • --databases, -B

    处理命名数据库中的所有表。通常, mysqlcheck将命令行中的名字参数视为数据库名称,将任何以下名称视为表名称。使用此选项,它将所有名称参数视为数据库名称。

  • --debug[=debug_options], -# [debug_options]

    编写一个调试日志。一个典型的 debug_options字符串是 默认是。 d:t:o,file_named:t:o

  • --debug-check

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

  • --debug-info

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

  • --default-character-set=charset_name

    使用charset_name作为默认字符集。请参见第10.14节“字符集配置”

  • --defaults-extra-file=file_name

    在全局选项文件之后读取此选项文件,但在用户选项文件之前(在Unix上)。如果文件不存在或无法访问,则会发生错误。 file_name如果作为相对路径名而非完整路径名给出,则相对于当前目录进行解释。

  • --defaults-file=file_name

    只使用给定的选项文件。如果文件不存在或无法访问,则会发生错误。 file_name如果作为相对路径名而非完整路径名给出,则相对于当前目录进行解释。

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

  • --defaults-group-suffix=str

    不仅要阅读常用选项组,还要阅读具有常用名称和后缀的组 str例如, mysqlcheck通常读取 [client]和 [mysqlcheck]组。如果 --defaults-group-suffix=_other 给出选项,mysqlcheck也会读取[client_other]和 [mysqlcheck_other]组。

  • --extended, -e

    如果您使用此选项检查表格,则可确保它们100%一致,但需要很长时间。

    如果您使用此选项来修复表,它将运行一次扩展修复,这不仅需要很长时间才能执行,还可能产生大量垃圾行!

  • --default-auth=plugin

    关于使用客户端身份验证插件的提示。请参见第6.3.10节“可插入认证”

  • --enable-cleartext-plugin

    启用mysql_clear_password明文身份验证插件。(请参见 第6.5.1.4节“客户端明文可插入验证”。)

  • --fast, -F

    只检查没有正确关闭的表格。

  • --force, -f

    即使发生SQL错误也继续。

  • --get-server-public-key

    从服务器请求基于RSA密钥对的密码交换所需的公钥。此选项适用于使用caching_sha2_password身份验证插件进行身份验证的客户端 对于那个插件,除非请求,服务器不会发送公钥。对于不使用该插件进行身份验证的帐户,此选项将被忽略。如果不使用基于RSA的密码交换,它也会被忽略,例如当客户端使用安全连接连接到服务器时。北大青鸟学校开发小组提供

    如果 给出并指定了有效的公钥文件,则优先于 。 --server-public-key-path=file_name--get-server-public-key

    有关该caching_sha2_password插件的信息 ,请参见 第6.5.1.3节“缓存SHA-2可插入验证”

  • --host=host_name, -h host_name

    连接到给定主机上的MySQL服务器。

  • --login-path=name

    .mylogin.cnf登录路径文件中的指定登录路径读取选项 阿 “ 登录路径 ”是含有指定要连接到哪个MySQL服务器和选项哪个帐户作为认证选项组。要创建或修改登录路径文件,请使用 mysql_config_editor实用程序。请参见 第4.6.7节“ mysql_config_editor - MySQL配置实用程序”

  • --medium-check, -m

    做一个比--extended操作快的检查 这只能找到所有错误的99.99%,在大多数情况下应该足够好。

  • --no-defaults

    不要阅读任何选项文件。如果由于从选项文件读取未知选项而导致程序启动失败, --no-defaults可用于防止读取它们。

    例外是.mylogin.cnf 在任何情况下读取文件(如果存在)。这允许以比使用命令行更安全的方式来指定密码,即使在--no-defaults使用时 也是如此。.mylogin.cnfmysql_config_editor实用程序创建, 请参见 第4.6.7节“ mysql_config_editor - MySQL配置实用程序”。)

  • --optimize, -o

    优化表格。

  • --password[=password], -p[password]

    连接到服务器时使用的密码。如果使用short option form(-p), 在选项和密码之间不能有空格。如果您省略命令行中password--passwordor -p选项后面的 值 mysqlcheck会提示输入一个。

    在命令行中指定密码应被视为不安全。请参见 第6.1.2.1节“密码安全的最终用户指南”您可以使用选项文件来避免在命令行上输入密码。

  • --pipe, -W

    在Windows上,使用命名管道连接到服务器。该选项仅适用于服务器支持命名管道连接的情况。

  • --plugin-dir=dir_name

    在其中查找插件的目录。如果该--default-auth选项用于指定身份验证插件,但是 mysqlcheck未找到该选项,请指定此选项 请参见 第6.3.10节“可插入认证”

  • --port=port_num, -P port_num

    用于连接的TCP / IP端口号。

  • --print-defaults

    打印程序名称以及从选项文件中获取的所有选项。

  • --protocol={TCP|SOCKET|PIPE|MEMORY}

    用于连接到服务器的连接协议。当其他连接参数通常会导致使用的协议不是您想要的协议时,这很有用。有关允许值的详细信息,请参见 第4.2.2节“连接到MySQL服务器”

  • --quick, -q

    如果您使用此选项来检查表格,它会阻止检查扫描行以检查不正确的链接。这是最快的检查方法。

    如果您使用此选项修复表格,则会尝试仅修复索引树。这是最快的修复方法。

  • --repair, -r

    执行修复可以修复几乎除了唯一键的唯一键以外的任何内容。

  • --secure-auth

    这个选项在MySQL 8.0.3中被删除。

  • --server-public-key-path=file_name

    包含客户端副本的文件的路径名,该副本是服务器为基于RSA密钥对的密码交换所需的。该文件必须采用PEM格式。该选项适用于使用sha256_passwordcaching_sha2_password身份验证插件进行身份验证的客户端 对于未使用其中一个插件进行身份验证的帐户,此选项将被忽略。如果不使用基于RSA的密码交换,它也会被忽略,例如当客户端使用安全连接连接到服务器时。

    如果 给出并指定了有效的公钥文件,则优先于 。 --server-public-key-path=file_name--get-server-public-key

    因为sha256_password,只有在使用OpenSSL构建MySQL时,此选项才适用。

    有关这些sha256_password 和caching_sha2_password插件的信息,请参见 第6.5.1.2节“SHA-256可插入验证”和 第6.5.1.3节“缓存SHA-2可插入验证”

  • --shared-memory-base-name=name

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

    必须启动服务器, --shared-memory并启用共享内存连接选项。

  • --silent, -s

    静音模式。只打印错误消息。

  • --skip-database=db_name

    不要在mysqlcheck执行的操作中包含指定的数据库(区分大小写)

  • --socket=path, -S path

    连接到localhost要使用的Unix套接字文件,或在Windows上使用命名管道的名称。

  • --ssl*

    开头的选项--ssl指定是否使用SSL连接到服务器,并指出在哪里可以找到SSL密钥和证书。请参见 第6.4.2节“加密连接的命令选项”

  • --tables

    覆盖--databases 或-B选项。该选项后面的所有名称参数都被视为表名。

  • --tls-version=protocol_list

    客户端允许的加密连接协议。该值是一个包含一个或多个协议名称的逗号分隔列表。可以为这个选项命名的协议取决于用于编译MySQL的SSL库。有关详细信息,请参见 第6.4.6节“加密连接协议和密码”

  • --use-frm

    对于MyISAM上的修复操作,从数据字典中获取表结构,以便即使.MYI 头损坏也可以修复表

  • --user=user_name, -u user_name

    连接到服务器时使用的MySQL用户名。

  • --verbose, -v

    详细模式。打印有关程序操作各个阶段的信息。

  • --version, -V

    显示版本信息并退出。

  • --write-binlog

    此选项是默认启用的,这样 ANALYZE TABLE, OPTIMIZE TABLE和 REPAIR TABLE所产生的报表mysqlcheck的被写入二进制日志。使用 --skip-write-binlog 导致NO_WRITE_TO_BINLOG被添加到让他们没有记录的语句。使用 --skip-write-binlog 时,这些声明不应该被发送到复制的奴隶或使用二进制日志从备份恢复时运行。 翻译来源:学什么技术好翻译

你可能感兴趣的:(mysql8.0)