我正在修理这张桌子,服务器突然挂了,当我返回时,所有桌子都正常,但是这张显示“正在使用”,当我尝试修复它时,它没有继续。
错误 144 - 表 './extas_d47727/xzclf_ads' 被标记为崩溃并且最后一次(自动?)修复失败
我能做些什么来修复它?
如果您的 MySQL 进程正在运行,请停止它。在 Debian 上:
sudo service mysql stop
转到您的数据文件夹。在 Debian 上:
cd /var/lib/mysql/$DATABASE_NAME
尝试运行:
myisamchk -r $TABLE_NAME
如果这不起作用,您可以尝试:
myisamchk -r -v -f $TABLE_NAME
您可以再次启动 MySQL 服务器。在 Debian 上:
sudo service mysql start
尝试运行以下查询:
repair table <table_name>;
我有同样的问题,它解决了我的问题。
如果它在移动到 /var/lib/mysql 时给您拒绝权限,请使用以下解决方案
$ cd /var/lib/
$ sudo -u mysql myisamchk -r -v -f mysql/<DB_NAME>/<TABLE_NAME>
这是我解决这个问题的经验。我正在使用 XAMPP。我收到以下错误
Fatal error: Can't open and lock privilege tables: Table '.\mysql\db' is marked as crashed and last (automatic?) repair failed
这就是我为解决它所做的,一步一步:
它奏效了。请记住,我已经尝试了大约 10 种解决方案,但它们对我不起作用。此解决方案可能适合您,也可能不适合您,但无论如何,请在执行任何操作之前备份您的数据文件夹。
注意:我总是选择使用修复命令来解决这个问题,但就我而言,我根本无法启动 mysql,也无法让 myisamchk 命令正常工作。
无论您做什么,都要定期备份您的数据库。
我需要将 USE_FRM 添加到修复语句中以使其工作。
REPAIR TABLE <table_name> USE_FRM;
我得到了myisamchk: error: myisam_sort_buffer_size is too small
错误。
解决方案
myisamchk -r -v mysql/<DB_NAME>/<TABLE_NAME> --sort_buffer_size=2G
修复表后转到data_dir
并删除文件。Your_table.TMP
<Your_table>
如果这发生在您的 XAMPP 安装中,只需global_priv.MAD
将global_priv.MAI
文件./xampp/mysql/backup/mysql/
从./xampp/mysql/data/mysql/
.
这是一个 100% 的解决方案。我自己试过了。
myisamchk -r -v -f --sort_buffer_size=128M --key_buffer_size=128M /var/lib/mysql/databasename/tabloname
我尝试了现有答案中的选项,主要是标记为正确的选项,但在我的场景中不起作用。但是,起作用的是使用 phpMyAdmin。选择数据库,然后选择表,从底部下拉菜单中选择“修复表”。