我正在修理这张桌子突然服务器被绞死,当我回来时所有的桌子都没问题,但是这个显示'正在使用',当我尝试修复它时不会继续。
ERROR 144 - 表'./extas_d47727 / xzclf_ads'被标记为崩溃,最后(自动?)修复失败
我该怎么做才能修复它?
答案 0 :(得分:228)
如果您的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
答案 1 :(得分:98)
尝试运行以下查询:
repair table <table_name>;
我有同样的问题,它解决了我的问题。
答案 2 :(得分:12)
如果在移动到/ var / lib / mysql时它允许您拒绝权限,请使用以下解决方案
$ cd /var/lib/
$ sudo -u mysql myisamchk -r -v -f mysql/<DB_NAME>/<TABLE_NAME>
答案 3 :(得分:6)
这是我解决这个问题的经验。我正在使用 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 命令工作。
无论您做什么,都要定期备份您的数据库。
答案 4 :(得分:3)
我的错误是myisamchk: error: myisam_sort_buffer_size is too small
。
解决方案
myisamchk -r -v mysql/<DB_NAME>/<TABLE_NAME> --sort_buffer_size=2G
答案 5 :(得分:3)
我需要将USE_FRM添加到修复语句中以使其正常工作。
REPAIR TABLE <table_name> USE_FRM;
答案 6 :(得分:2)
转到data_dir
并修复Your_table.TMP
表后删除<Your_table>
文件。
答案 7 :(得分:1)
这是100%的解决方案。我自己尝试过。
myisamchk -r -v -f --sort_buffer_size = 128M --key_buffer_size = 128M / var / lib / mysql / databasename / tabloname
答案 8 :(得分:1)
如果您的 XAMPP 安装发生这种情况,只需将 global_priv.MAD
和 global_priv.MAI
文件从 ./xampp/mysql/backup/mysql/
复制到 ./xampp/mysql/data/mysql/
。
答案 9 :(得分:0)
我尝试了现有答案中的选项,主要是标记为正确的选项,在我的方案中不起作用。但是,所做的工作是使用phpMyAdmin。选择数据库,然后选择表,从底部的下拉菜单中选择“修复表”。