错误:MySQL 意外关闭。 XAMPP,如何修复损坏的表

Posted

技术标签:

【中文标题】错误:MySQL 意外关闭。 XAMPP,如何修复损坏的表【英文标题】:Error: MySQL shutdown unexpectedly. XAMPP, how to repair a corrupt table 【发布时间】:2020-04-24 12:16:50 【问题描述】:

我已经研究这个问题两天了,所有的问题和答案都没有解决我的问题。

找到了!多次运行后在mysql_error.log中:

2020-01-06 16:34:11 0 [错误] mysqld.exe:表 '.\mysql\user' 是 标记为崩溃和最后一次(自动?)修复失败

2020-01-06 16:34:11 0 [错误] 致命错误:无法打开和锁定权限表: 表 '.\mysql\user' 被标记为崩溃和最后一个(自动?) 修复失败

所以现在我在多次尝试启动 MySQL 并查看日志后看到问题,这次我终于看到“用户”表已损坏。

谁能建议如何修复这个问题?

【问题讨论】:

你的数据库有备份吗? 是的,我可以复制它并覆盖坏文件吗?文件是 ibdata1 吗?它在 c:\xampp\mysql\data 不知道能不能把数据库替换成文件。你有 SQL 的备份吗?如果表无法修复,您可以从备份中drop table 然后create table @jack.sparrow 你能建议这样做的过程吗?不知道如何执行此操作。 【参考方案1】:

首先,从 XAMPP 控制面板,打开“Config” [mysql] 并添加 [mysqld] = innodb_force_recovery = 1 下的以下行

然后执行以下操作:

从控制面板打开shell并使用以下命令启动mysql:

mysqld –-console –-skip-grant-tables –-skip-external-locking
Open another shell from control panel and repair database with this command:
mysqlcheck -r --databases mysql --use-frm
Stop mysql, close shells and restart mysql normally.

如果它不起作用,则更改 innodb_force_recovery = 2 并重复该过程,如果不起作用,则再次更改为 3,等等...最多 4 个

你会发现这个answer很有用

【讨论】:

在损坏表所在的目录中运行第一行后,它运行并在运行结束时显示: [ERROR] mysqld: Table '.\mysql\user' ismarked as crashed and上次(自动?)修复失败 - 我应该在 \mysql 目录中运行它吗? 嗨@JRse,确保通过执行命令-service mysql stop 停止MySQL 守护程序/服务。然后运行 ​​-myisamchk -r table_name。您可以点击链接 [link] (stellarinfo.com/blog/…)。 当我运行 myisamchk -r user 时它给了我一个错误.....说文件'用户'不存在??我从 dir xampp\mysql 运行它。我的数据库是 InnoDB 这可能是为什么? 我访问了站点 [您提供的链接] 并尝试运行一些命令,它告诉我我没有使用 *.MYI 的权限?我在命令提示符下,知道如何获得许可吗? 好的,我尝试运行另一个程序和 phpmyadmin 并得到以下错误:无法访问此站点 localhost 拒绝连接。在 Google 上搜索 localhost phpmyadmin ERR_CONNECTION_REFUSED。

以上是关于错误:MySQL 意外关闭。 XAMPP,如何修复损坏的表的主要内容,如果未能解决你的问题,请参考以下文章

错误:MySQL 意外关闭 - XAMPP

Xampp MySql 错误:MySQL 意外关闭

Xampp 无法在 localhost 中运行 MySQL! - “错误:MySQL 意外关闭。”

错误:MySQL 意外关闭。尝试在 Xampp 上启动 Mysql

错误:MySQL 意外关闭。在 xampp 控制上

XAMPP MySQL 意外关闭 - 日志中没有错误