如何修复损坏的xampp'mysql.user'表?

Phi*_*ärz 2 mysql xampp

我昨天使用Xampp创建了一些简单的基于Web的实用工具。今天,我想继续研究它,但是xampp控制面板给了我一些堰式错误。

这是MySQL错误日志:

2019-07-20 23:47:13 0 [Note] InnoDB: Uses event mutexes
2019-07-20 23:47:13 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
2019-07-20 23:47:13 0 [Note] InnoDB: Number of pools: 1
2019-07-20 23:47:13 0 [Note] InnoDB: Using SSE2 crc32 instructions
2019-07-20 23:47:13 0 [Note] InnoDB: Initializing buffer pool, total size = 16M, instances = 1, chunk size = 16M
2019-07-20 23:47:13 0 [Note] InnoDB: Completed initialization of buffer pool
2019-07-20 23:47:13 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=1819402
2019-07-20 23:47:14 0 [Note] InnoDB: 128 out of 128 rollback segments are active.
2019-07-20 23:47:14 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1"
2019-07-20 23:47:14 0 [Note] InnoDB: Creating shared tablespace for temporary tables
2019-07-20 23:47:14 0 [Note] InnoDB: Setting file 'C:\xampp\mysql\data\ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
2019-07-20 23:47:14 0 [Note] InnoDB: File 'C:\xampp\mysql\data\ibtmp1' size is now 12 MB.
2019-07-20 23:47:14 0 [Note] InnoDB: Waiting for purge to start
2019-07-20 23:47:14 0 [Note] InnoDB: 10.3.16 started; log sequence number 1819411; transaction id 257
2019-07-20 23:47:14 0 [Note] InnoDB: Loading buffer pool(s) from C:\xampp\mysql\data\ib_buffer_pool
2019-07-20 23:47:14 0 [Note] InnoDB: Buffer pool(s) load completed at 190720 23:47:14
2019-07-20 23:47:14 0 [Note] Plugin 'FEEDBACK' is disabled.
2019-07-20 23:47:14 0 [Note] Server socket created on IP: '127.0.0.1'.

2019-07-20 23:47:14 0 [ERROR] mysqld.exe: Table '.\mysql\user' is marked as crashed and should be repaired

2019-07-20 23:47:14 0 [ERROR] mysqld.exe: Index for table '.\mysql\user' is corrupt; try to repair it

2019-07-20 23:47:14 0 [ERROR] Couldn't repair table: mysql.user

2019-07-20 23:47:14 0 [ERROR] Fatal error: Can't open and lock privilege tables: Index for table 'user' is corrupt; try to repair it
Run Code Online (Sandbox Code Playgroud)

已经尝试修复,但是mySQL Service甚至无法启动,所以我有点无奈...

Har*_*ron 48

我遇到了问题#1034-表“db”的索引已损坏;尝试在 phpmyadmin 中修复它

步骤:1 对损坏的表运行这两个查询:

REPAIR TABLE mysql.db
REPAIR TABLE mysql.user
Run Code Online (Sandbox Code Playgroud)

步骤2:如下图所示: 在此输入图像描述 检查损坏的表,然后单击“检查全部”Repair table旁边的下拉列表,然后从下拉列表中选择“表维护”组。

  • 这几乎有效,但我收到以下错误:“'mysql.user'不是'BASE TABLE'类型”。 (2认同)

Sar*_*mas 29

对于窗户:

转到Xampp文件夹:Xampp->mysql->bin

双击:mysql_upgrade.exe

之后刷新您的浏览器(phpmyadmin)

  • 这是最好且简单的答案,我认为这应该被接受为解决方案。谢谢你帮助我。 (2认同)

Ara*_*NSR 18

使用波纹管命令,你会像我现在一样快乐。

repair table DATABASENAME.TABLENAME use_frm;
Run Code Online (Sandbox Code Playgroud)

我确定您知道在运行此命令之前应该根据您的存储首选项和备份更改大写,不是吗?:)

资料来源:大卫马勒卡哈马迪


Aru*_*R S 9

只需使用

REPAIR TABLE mysql.user
Run Code Online (Sandbox Code Playgroud)


小智 9

这对我很有效

首先从 phpmyadmin 仪表板导航到 SQL 查询

复制以下代码粘贴并执行

repair table DATABASENAME.TABLENAME use_frm;
Run Code Online (Sandbox Code Playgroud)

  • 最佳被低估的答案 (2认同)

Bad*_*ser 7

这几乎可以肯定是mariaDB中的一个已知错误(即mySQL)。有关说明,请参见ApacheFriends.org。更改用户密码后(通常是root用户)会出现问题。

一般建议似乎是为了减少损失,并将XAMPP降级到7.3.5

否则,例如,即使完全卸载/重新安装7.3.7 之后,问题也可能在以后再次出现。

接下来是针对Windows / XAMPP用户的规避/修复。假设您有备份-您可能会这样做。(看来安装过程提供了初始备份。)想法是让您重新广播,而不必降级足够长的时间以使下一个版本可以到达。

走出沼泽的最快方法就是转到步骤9。

(1)找到“ my.ini”(例如c:\ xampp \ mysql \ bin \ my.ini)
(2)在标签“ [mysqld]”之后的新行中插入“ skip-grant-tables”。以后删除它。
(3)现在可以从XAMPP控制面板启动mySQL。
(4)从浏览器启动phpMyAdmin并从数据库'mysql'中选择表'user'。
(5)应该看到:#1034表'user'的索引已损坏;尝试修复它。
(6)从左侧面板中选择“ mysql”,然后在右侧面板中选中“ user”。
(7)从“选中”下拉菜单中运行“分析”,然后运行“修复表”。
(8)如果“修复”失败,则只能选择“删除表用户”...。

(9)通过复制以下3个文件,从分发备份中重新创建“用户”表。

C:\xampp\mysql\backup\mysql\user.frm 
C:\xampp\mysql\backup\mysql\user.MYD
C:\xampp\mysql\backup\mysql\user.MYI
Run Code Online (Sandbox Code Playgroud)

C:\xampp\mysql\data\mysql\
Run Code Online (Sandbox Code Playgroud)

然后重新启动XAMPP并根据需要添加/删除/编辑用户。

最后一点:“用户”表和“数据库”表之间似乎存在某种关联。您可能需要按照步骤(7)修复“ db”表。


Sir*_*Ali 6

最简单的方法

检查损坏的表,然后选择/单击“修复表”。

试试这个我希望它会起作用。

在此输入图像描述


Rog*_*ez 6

对于窗户:

确保您的 Apache 和 MySQL 保持运行。

  1. 转到Xampp文件夹:Xampp->mysql->bin
  2. 双击:mysql_upgrade.exe
  3. 之后刷新您的浏览器(phpmyadmin)

这是经过验证和测试的


小智 5

在我找到工作解决方案之前最好的方法是:

  1. 转到phpmyadmin并查找mysql数据库。 示例图片在这里

  2. 单击mysql数据库,它将打开结构。

  3. 从表列表中选择表的复选框global_priv,最后单击with selected下拉列表,然后单击修复表下拉选项

4. 就是这样。现在你可以走了。