无法通过 XAMPP 启动 mysql - mysql\db 崩溃

jps*_*w72 5 mysql xampp

我已经成功地在我的 Windows 10 PC 上使用 XAMPP 来运行我在本地工作的网站,直到今天。

当我尝试启动 MySQL 时,它失败了。错误日志状态:

mysqld.exe: Table '.\mysql\db' is marked as crashed and last (automatic?) repair failed
Fatal error: Can't open and lock privilege tables: Table '.\mysql\db' is marked as crashed and last (automatic?) repair failed
Run Code Online (Sandbox Code Playgroud)

当我尝试解决此问题时,我尝试了以下操作:

mysqlcheck --repair --use-frm --all-databases
Run Code Online (Sandbox Code Playgroud)

但这给了我以下错误:

Got error: 2002: Can't connect to MySQL server on 'localhost' (10061) when trying to connect
Run Code Online (Sandbox Code Playgroud)

我认为这是有道理的,因为 mysql 服务无法运行。

我还尝试从该目录运行以下命令:c:\xampp\mysql\data。这样做会导致错误,提示“db”不存在:

myisamchk -r db
Run Code Online (Sandbox Code Playgroud)

我注意到我有一个相当大的 db.MAD 文件 174,616K,所以不确定这是否是问题所在。

小智 26

我遇到了同样的问题,这就是我所做的:

  1. 使用记事本查找并打开“my.ini”文件。(我的位于 c:\xampp\mysql\bin\my.ini )
  2. 在“my.ini”文件中标签“[mysqld]”后面的新行中插入“skip-grant-tables”并保存。问题解决后,您将删除它。
  3. 现在 mySQL 您可以从控制面板启动 XAMPP。
  4. 从浏览器启动 phpMyAdmin,然后从数据库“mysql”中选择表“db”(从左侧面板中选择“mysql”,然后在右侧面板中检查“db”)。
  5. 在“选择”下拉列表下方,运行“分析”(应该说它已损坏)。然后再次选择并运行“修复表”。
  6. 再次找到“my.ini”文件并用记事本打开。
  7. 删除“my.ini”文件中的“skip-grant-tables”并保存。
  8. 问题应该已解决,您应该能够正常启动 XAMPP,这将正常启动 MySQL。