mysqlcheck修复工具

  mysqlcheck工具可以检查、修复、优化和分析MyISAM引擎的表,实际上是集成了Mysql中的check、repair、analyze、tmpimize的功能。

  mysqlcheck共军存在于mysql-community-client包。如果是yum或rpm安装可以使用rpm -qf `which mysqlcheck`查看到:

1
2
[root@youxi1 ~]# rpm -qf `which mysqlcheck`
mysql-community-client-5.7.16-1.el7.x86_64

  如果是源码安装,应该可以找到/usr/local/mysql/bin/mysqlcheck(?)。

(1).mysqlcheck语法

mysqlcheck [选项] <数据库名> [表名]

mysqlcheck [选项] --databases <数据库名1> [数据库名2 数据库名3...]

mysqlcheck [选项] --all-datbases

(2).常用选项

1
2
3
4
5
6
-c,--check 检查表
-r,--repair 修复表
-a,--analyze 分析表
-o,--tmpimize 优化表,默认包含-c选项
-u 以什么mysql用户进行操作
-p 用户的密码

(3).创建实验环境

1
2
3
4
5
6
7
8
9
10
11
mysql> create database test_db;
Query OK, 1 row affected (0.00 sec)
 
mysql> use test_db;
Database changed
mysql> create table user_tb(id int,name varchar(20)) engine=MyISAM;      
Query OK, 0 rows affected (0.02 sec)
 
mysql> insert into user_tb values(1,'张三'),(2,'李四'),(3,'王五'),(4,'赵六');
Query OK, 4 rows affected (0.11 sec)
Records: 4  Duplicates: 0  Warnings: 0

(4).实例

  检查指定的表

1
2
3
[root@youxi1 ~]# mysqlcheck -uroot -p123456 -c test_db user_tb;
mysqlcheck: [Warning] Using a password on the command line interface can be insecure.
test_db.user_tb                                    OK

  修复指定的表

1
2
3
[root@youxi1 ~]# mysqlcheck -uroot -p123456 -r test_db user_tb;
mysqlcheck: [Warning] Using a password on the command line interface can be insecure.
test_db.user_tb                                    OK

  修复指定数据库

1
2
3
4
5
6
[root@youxi1 ~]# mysqlcheck -uroot -p123456 -r test_db;    //只有一个数据库的时候      
mysqlcheck: [Warning] Using a password on the command line interface can be insecure.
test_db.user_tb                                    OK
[root@youxi1 ~]# mysqlcheck -uroot -p123456 -r --databases test_db;  //有多个数据库的时候
mysqlcheck: [Warning] Using a password on the command line interface can be insecure.
test_db.user_tb                                    OK

  修复所有数据库

1
2
[root@youxi1 ~]# mysqlcheck -uroot -p123456 -r -A
[root@youxi1 ~]# mysqlcheck -uroot -p123456 -r --all-databases;

  修复所有数据库时,有部分表可能不是MyISAM引擎,会报错。

  有使用也会用定时计划任务,使用-o选项定时优化数据库。

posted @   苦逼运维  阅读(5920)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
点击右上角即可分享
微信分享提示