aria引擎错误176需用aria_chk修复,不可混用myisamchk;须停服务、确认.mai/.mad文件、加--backup参数,并检查硬盘坏道。

Got error 176 是 Aria 引擎的校验失败,不是 MyISAM
直接用 myisamchk 修 Got error 176 "Read page with wrong checksum" from storage engine Aria 会失败——因为 myisamchk 只处理 MyISAM 表(.MYI 文件),而错误 176 明确指向 Aria 引擎(.MAI 文件)。MariaDB 的 Aria 表必须用 aria_chk 工具,否则报 Unknown table type 'Aria' 或静默跳过。
先确认引擎和表文件类型
连上 MySQL/MariaDB 后执行:
SHOW TABLE STATUS LIKE 'your_table';
看 Engine 列是否为 Aria;再进数据目录(如 /var/lib/mysql/your_db/)检查文件:
-
your_table.MAD(数据)、your_table.MAI(索引)→ Aria 表 -
your_table.MYD+your_table.MYI→ MyISAM 表
别凭表名或旧经验判断,aria_chk 和 myisamchk 不通用,混用会跳过修复或损坏元数据。
用 aria_chk 修复 Aria 表(命令行)
必须停掉 MariaDB 服务,否则文件被占用:
- Linux:
sudo systemctl stop mariadb - Windows:任务管理器结束
mysqld.exe进程
然后运行(路径按实际调整):
aria_chk -r /var/lib/mysql/your_db/your_table.MAI
常用参数说明:
-
-r:强制修复(比-o更激进,适合校验失败) -
-v:显示详细过程,看到Found block with wrong checksum即定位到坏页 -
--backup:修复前自动备份原.MAI文件(强烈建议加)
如果提示 Can't open file: 'xxx.MAD' (errno: 13),是权限问题,用 sudo chown mysql:mysql *.MAI *.MAD 修正。
phpMyAdmin 修复只是调用 aria_chk,但有隐藏限制
phpMyAdmin 界面点“修复”时,底层实际执行的是 aria_chk -r。但它有个关键缺陷:
- 不支持
--backup,修复失败无法回退 - 对大表(>1GB)容易超时,页面卡死或返回空白
- 若表损坏严重,可能报
Table is marked as crashed and should be repaired却不触发真正修复
所以生产环境优先用命令行 + --backup;phpMyAdmin 仅用于小表快速验证。
真正麻烦的是:Aria 校验失败往往意味着磁盘已出现坏块,aria_chk -r 成功后务必立刻 smartctl -a /dev/sdX 查 Reallocated_Sector_Ct,这个数一旦非零,硬盘该换了——否则下周又报错 176。











