如何修复损坏的xampp'mysql.user'表? [英] How repair corrupt xampp 'mysql.user' table?

查看:396
本文介绍了如何修复损坏的xampp'mysql.user'表?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I used Xampp yesterday to create some simple Web-based utility tool. Today I wanted to continue working on it but xampp control panel gave me some weir errors.

这是MySQL错误日志:

This is the MySQL Error Log:

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

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

Tried already to repair, but the mySQL Service won't even start, so I'm kinda helpless...

推荐答案

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

This is almost certainly a known bug in mariaDB (ie mySQL). See ApacheFriends.org for the description. Problem occurs after user password changes - often user root.

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

General advice seems to be to cut your losses and downgrade your XAMPP to 7.3.5

例如,在 完全卸载/重新安装7.3.7之后,该问题以后可能还会再次出现.

Otherwise the problem may later recur even after a complete uninstall/re-install of 7.3.7 for example.

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

What follows is a circumvention / repair for Windows/XAMPP users. It assumes you have a backup - which you probably do. (It appears the installation process provides an initial backup.) Idea is to get you back on air without downgrading long enough for the next release to arrive.

摆脱沼泽的最快方法就是去第9步.

Quickest way out of the swamp is just to go to step 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)如果修复"失败,则只能选择"DROP TABLE用户"....

(1) Find 'my.ini' (eg. c:\xampp\mysql\bin\my.ini )
(2) Insert 'skip-grant-tables' in a new line following label '[mysqld]'. Remove this later.
(3) Now mySQL can be started from the XAMPP control panel.
(4) Start phpMyAdmin from browser and select table 'user' from database 'mysql'
(5) Should see: #1034 Index for table 'user' is corrupt; try to repair it.
(6) Select 'mysql' from left panel then check 'user' in right hand panel.
(7) From the 'With selected' dropdown run 'analyze' then 'repair table'.
(8) If 'Repair' fails no choice but to 'DROP TABLE user' ....

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

(9) Recreate 'user' table from the distribution backup by copying the following 3 files.

C:\xampp\mysql\backup\mysql\user.frm 
C:\xampp\mysql\backup\mysql\user.MYD
C:\xampp\mysql\backup\mysql\user.MYI

C:\xampp\mysql\data\mysql\

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

then restarting XAMPP and adding/removing/editing users as you wish.

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

One last point: There seems to be some sort of association between the 'user' and 'db' tables. You may need to repair the 'db' table as per step (7).

这篇关于如何修复损坏的xampp'mysql.user'表?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆