10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 本手册下载 本手册节选

4.5.3 mysqlcheck -表维护程序

mysqlcheck客户端进行表维护:检查、修理、优化或分析表。

每个表都是锁定的,因此当它被处理时,其他会话不可用,尽管对于检查操作,表被锁定锁只(见第13.3.6节,“LOCK TABLES和UNLOCK TABLES语句”,以了解更多有关而且锁)。表维护操作可能非常耗时,特别是对于大型表。如果你使用——数据库——所有数据库选项,用于处理一个或多个数据库中的所有表mysqlcheck可能要花很长时间。(如果MySQL升级过程确定需要进行表检查,这也是正确的,因为它以同样的方式处理表。)

mysqlcheck一定要用的时候mysqld服务器正在运行,这意味着您不必停止服务器来执行表维护。

mysqlcheck使用SQL语句检查表修理表分析表,优化表以方便用户的方式。它确定您想要执行的操作使用哪些语句,然后将这些语句发送到要执行的服务器。关于每条语句对应的存储引擎,请参见第13.7.3节,“表维护报表”

并非所有存储引擎都支持所有四种维护操作。在这种情况下,将显示错误消息。例如,如果test.t是一个内存表,尝试检查它会产生这样的结果:

Shell > mysqlcheck test t test。t注意:表的存储引擎不支持check

如果mysqlcheck是无法修理的表,看第2.11.13节,“重建或修复表或索引”用于手工表的维修策略。这是一个例子,例如InnoDB表,可以用检查表,但没有用修理表

谨慎

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

有三种通用的调用方式mysqlcheck

mysqlcheck [选项db_nametbl_name...]mysqlcheck [选项]——数据库db_name...mysqlcheck [选项),所有数据库

如果您没有命名下面的任何表db_name或者如果你用——数据库——所有数据库选项,检查整个数据库。

mysqlcheck与其他客户端程序相比有一个特殊的功能。检查表的默认行为(——检查)可以通过重命名二进制文件来更改。如果你想有一个默认修复表的工具,你应该只做一个副本mysqlcheck命名mysqlrepair,或创建符号链接mysqlcheck命名mysqlrepair.如果您调用mysqlrepair,它修理桌子。

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

命令 意义
mysqlrepair 默认选项是——修复
mysqlanalyze 默认选项是——分析
mysqloptimize 默认选项是——优化

mysqlcheck支持以下选项,可以在命令行或在(mysqlcheck)而且(客户端)选项文件的组。有关MySQL程序使用的选项文件的信息,请参见第4.2.2.2节,“使用选项文件”

表4.13 mysqlcheck选项

选项名称 描述 介绍了 弃用
——所有数据库 检查所有数据库中的所有表
——all-in-1 为每个数据库执行一条命名该数据库中所有表的语句
——分析 分析表
——自我修护 如果检查的表损坏了,自动修复它
——bind-address 使用指定的网络接口连接MySQL服务器
——character-sets-dir 字符集安装的目录
——检查 检查表格是否有错误
——check-only-changed 只检查自上次检查以来已更改的表
——check-upgrade 使用forupgrade选项调用CHECK TABLE
——压缩 压缩客户端和服务器之间发送的所有信息 8.0.18
——压缩算法 允许连接到服务器的压缩算法 8.0.18
——数据库 将所有参数解释为数据库名称
——调试 编写调试日志
——debug-check 当程序退出时打印调试信息
——debug-info 当程序退出时,打印调试信息、内存和CPU统计信息
——default-auth 要使用的认证插件
——default-character-set 指定默认字符集
——defaults-extra-file 除了通常的选项文件外,读取命名的选项文件
——defaults-file 只读命名选项文件
——defaults-group-suffix 选项组后缀值
——enable-cleartext-plugin 启用明文认证插件
——扩展 检修表
——快 只检查没有正确关闭的桌子
——力 即使发生SQL错误,也要继续
——get-server-public-key 向服务器请求RSA公钥
——帮助 显示帮助信息并退出
——主机 MySQL服务器所在的主机
——登录路径 从.mylogin.cnf读取登录路径选项
——medium-check 做一个比扩展操作更快的检查
——已 读取无选项文件
——优化 优化表
——密码 连接到服务器时使用的密码
——管 使用命名管道连接到服务器(仅针对Windows)
——plugin-dir 安装插件的目录
——港口 连接的TCP/IP端口号
——print-defaults 打印默认选项
——协议 要使用的传输协议
——快速 最快的检查方法
——修复 执行一个几乎可以修复任何东西的修复,除了不唯一的唯一键
——server-public-key-path 包含RSA公钥文件的路径名称
——shared-memory-base-name 用于共享内存连接的共享内存名称(仅限Windows)
——沉默 静默模式
——skip-database 从执行的操作中忽略此数据库
——套接字 Unix套接字文件或Windows命名管道使用
——ssl-ca 包含受信任的SSL证书颁发机构列表的文件
——ssl-capath 包含受信任的SSL证书颁发机构证书文件的目录
——ssl-cert 包含X.509证书的文件
——ssl cipher 连接加密允许的密码
——ssl-crl 包含证书撤销列表的文件
——ssl-crlpath 包含证书撤销列表文件的目录
——ssl-fips-mode 客户端是否启用FIPS模式
——ssl密钥 包含X.509密钥的文件
——ssl-mode 连接到服务器的期望安全状态
——表 覆盖——databases或-B选项
——tls-ciphersuites 允许用于加密连接的TLSv1.3加密套件 8.0.16
——tls版本 允许加密连接使用TLS协议
——use-frm 用于MyISAM表的修复操作
——用户 连接到服务器时使用的MySQL用户名
——详细 详细模式
——版本 显示版本信息并退出
——write-binlog 日志分析,优化,修复语句到二进制日志。——skip-write-binlog向这些语句添加NO_WRITE_TO_BINLOG
——zstd-compression-level 连接到使用zstd压缩的服务器的压缩级别 8.0.18