暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

4.5.3 mysqlcheck —表维护程序

原创 由迪 2020-11-23
919

所述mysqlcheck的客户端执行表维护:它检查,修理,优化,或分析表。

每个表均被锁定,因此在处理过程中无法供其他会话使用,尽管对于检查操作,该表仅使用锁定进行READ锁定(有关以及的更多信息,请参见 第13.3.6节“ LOCK TABLES和UNLOCK TABLES语句”。 锁)。表维护操作可能很耗时,特别是对于大型表。如果使用 或 选项处理一个或多个数据库中的所有表,则调用 mysqlcheckREAD``WRITE--databases--all-databases可能需要很长时间。(如果MySQL升级过程确定需要检查表,因为它以相同的方式处理表,对于MySQL升级过程也是如此。)

mysqld服务器运行时,必须使用 mysqlcheck,这意味着您不必停止服务器即可执行表维护。

mysqlcheck的使用SQL语句 CHECK TABLEREPAIR TABLEANALYZE 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.11.13节“重建或修复表或索引”以获取手动表修复策略。例如,对于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*或者使用--databases--all-databases选项,则将 检查整个数据库。

与其他客户端程序相比, mysqlcheck具有特殊功能。--check可通过重命名二进制文件来更改检查表()的默认行为。如果要使用默认情况下修复表的工具,则应仅复制一个名为 mysqlrepairmysqlcheck,或建立一个指向名为 mysqlrepair的mysqlcheck的符号链接 。如果调用 mysqlrepair,它将修复表。

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

命令 含义
mysql修复 默认选项是 --repair
mysql分析 默认选项是 --analyze
mysql优化 默认选项是 --optimize

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

表4.13 mysqlcheck选项

选项名称 描述 介绍了 不推荐使用
-所有数据库 检查所有数据库中的所有表
–all-in-1 对每个数据库执行一个语句,该语句命名该数据库中的所有表
- 分析 分析表
- 自动修理 如果检查表已损坏,请自动修复它
–bind-address 使用指定的网络接口连接到MySQL Server
–character-sets-dir 字符集的安装目录
-检查 检查表中的错误
–check-only-changed 仅检查自上次检查以来已更改的表
-检查升级 使用FOR UPGRADE选项调用CHECK TABLE
- 压缩 压缩客户端和服务器之间发送的所有信息 8.0.18
-压缩算法 用于服务器连接的允许压缩算法 8.0.18
-数据库 将所有参数解释为数据库名称
-调试 编写调试日志
-调试检查 程序退出时打印调试信息
- 调试信息 程序退出时打印调试信息,内存和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中读取登录路径选项
-中等检查 进行比–extended操作更快的检查
-无默认值 不读取选项文件
-优化 优化表
- 密码 连接服务器时使用的密码
- 管 使用命名管道连接到服务器(仅Windows)
–plugin-dir 安装插件的目录
- 港口 用于连接的TCP / IP端口号
–print-defaults 打印默认选项
- 协议 使用的传输协议
- 快 最快的检查方法
- 修理 执行修复,可以修复几乎所有东西,除了不是唯一的唯一键
–server-public-key-path 包含RSA公钥的文件的路径名
–shared-memory-base-name 共享内存连接的共享内存名称(仅Windows)
- 无声 静音模式
-跳过数据库 从执行的操作中忽略此数据库
- 插座 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模式 与服务器连接的所需安全状态
-表 覆盖–databases或-B选项
–tls-ciphersuites 允许的TLSv1.3密码套件用于加密连接 8.0.16
–tls-version 允许的TLS协议进行加密连接
–use-frm 对于MyISAM表的修复操作
- 用户 连接服务器时使用的MySQL用户名
-详细 详细模式
- 版 显示版本信息并退出
–write-binlog 将ANALYZE,OPTIMIZE,REPAIR语句记录到二进制日志中。–skip-write-binlog将NO_WRITE_TO_BINLOG添加到这些语句
–zstd-压缩级别 与使用zstd压缩的服务器的连接的压缩级别 8.0.18
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论