用myisamchk修复MySQL数据库中提示“使用中”的表方法
如果您遇到数据库问题并尝试使用MySQL CLI客户端查看数据库,则在尝试查询某些表时可能会发现此错误:
MySQL Table ‘table_name’ is marked as crashed and last (automatic?) repair failed
这可能是由多种原因引起的,例如服务器上的硬重置,可用磁盘空间不足或MySQL进程因某些原因而崩溃。
如何解决这个问题(快捷方式)
1.使用SSH登录服务器
ssh root@example.com
2.停止MySQL服务
您可以通过运行以下命令来停止MySQL守护程序/服务:
service mysql stop
3.将目录更改为MySQL数据库
您的MySQL目录通常位于/ var / lib / mysql中
cd / var / lib / mysql / YOUR_DATABASE_NAME
4.运行myisamchk
然后通过执行以下命令运行myisamchk命令:
myisamchk -r table_name
如果出现报错:myisamchk: [ERROR] unknown variable ‘read_buffer=2M’
宝塔后台找到MYSQL管理》配置修改》注释:ead_buffer = 2M | write_buffer = 2M 注释掉就可以了
用您的实际MySQL表名替换table_name
输出:
root@example:/var/lib/mysql/database_name# myisamchk -r table_name
– recovering (with sort) MyISAM-table ‘table_name’
Data records: 0
– Fixing index 1
Found block that points outside data file at 1694719836
Data records: 5965594
再次启动MySQL服务
service mysql start
完了!
你的MySQL表现在应该再次工作,至少在我的情况下这解决了问题。