一尘不染

重新获得WAMP上PHPMyAdmin丢失的MySQL密码的访问权限

mysql

我在PHPMyAdmin中更改了我的 ‘root’@’localhost’
帐户的密码,并且喜欢(此人在这里询问),并将自己锁定在浏览器中的PHPMyAdmin之外。我正在使用WAMP 2.5。

针对该问题提供的解决方案对我不起作用,因为不幸的是,我丢失了重新分配给 root用户 的密码。

一些解决方案要求人们通过命令行(包括此源)来重置密码,而我已经尝试通过Windows命令行来成功,因为我现在没有任何权限:

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('mynewpassword');

ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'

WAMP带有MySQL控制台,但是我无法使用它,因为它会提示我输入密码,正如我之前所说,不再使用。

该视频说明了如何更改密码,并且与上述StackExchange答案中的答案一致,但是显然,我现在需要另一种方法来执行此操作,因为我不知道我会因为该人的警告而失去访问权限。

如果有任何建议,我将不胜感激,并深表歉意。我只是想使用堆栈进行Web开发,而通过WAMP配置对LAN站点的访问是一个冒险,因此,如果可能的话,我希望不需要重新安装所有内容。

编辑1
:继续尝试@RiggsFolly的解决方案。虽然我可以访问my.ini文件,进行更改,没有问题,并且可以通过WAMP或其他方式毫无问题地重新启动MySQL,但该行skip- grant-tables没有生效,给我留下了密码提示或无权执行任何操作。(我在这里写了一个新问题来解决这个问题,因为我觉得这是一个不同的问题。)

编辑2 :我尝试了@ t.niese在注释中提供的链接中的说明,并且当我将控制台设置为返回对说明的反馈时,它报告了此情况,但未更改任何内容:

C:\wamp\bin\mysql\mysql5.6.17\bin>mysqld --skip-grant-tables --console
[Note] Plugin 'FEDERATED' is disabled.
[Note] InnoDB: Using atomics to ref count buffer pool pages
[Note] InnoDB: The InnoDB memory heap is disabled
[Note] InnoDB: Mutexes and rw_locks use Windows interlocked functions
[Note] InnoDB: Compressed tables use zlib 1.2.3
[Note] InnoDB: Not using CPU crc32 instructions
[Note] InnoDB: Initializing buffer pool, size = 128.0M
[Note] InnoDB: Completed initialization of buffer pool
[ERROR] InnoDB: .\ibdatai can't be opened in read-write mode
[ERROR] InnoDB: The system tablespace must be writabe!
[ERROR] Plugin 'InnoDB' init function returned error.
[ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
[ERROR] Unknown/unsupported storage engine: InnoDB
[ERROR] Aborting
[Note] /* List of plugins shutting down */

阅读 224

收藏
2020-05-17

共1个答案

一尘不染

这是一种允许您非常简单地重置MYSQL’root’密码的方法。

停止mysql服务

wampmanager -> MySQL -> Service -> Stop Service

编辑my.ini文件

wampmanager -> MySQL -> my.ini

在ini文件中找到[wampmysqld](32位)或[wampmysqld64](64位)部分

在该部分标题之后直接添加此行

skip-grant-tables

重新启动mysql服务。

wampmanager -> MySQL -> Service -> Start/Resume Service

打开MySQL控制台

wampmanager -> MySQL -> MySQL Console

现在,我们将重置root用户的密码,当然,这可以用于重置任何用户的密码。

mysql>命令提示符下输入以下2条命令,每条命令在行尾加半冒号,并在每行后按ENTER,以将命令发布给mysql。

MYSQL 5.7之前的版本

UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
FLUSH PRIVILEGES;

发布MYSQL 5.7版后,列名已更改

UPDATE mysql.user SET authentication_string=PASSWORD('MyNewPass') WHERE User='root';
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;

请注意,该更新可能会报告它已更新了多行,因为该更新可能存在多个用户帐户,这些用户帐户的“
root”用户ID分别具有不同的域,即127.0.0.1,localhost和:: 1

现在,在mysql命令promt处输入“ quit”以存在mysql。

停止mysql服务

wampmanager -> MySQL -> Service -> Stop Service

编辑my.ini文件

wampmanager -> MySQL -> my.ini

在ini文件中找到[wampmysqld](32位)或[wampmysqld64](64位)部分

删除skip-grant-tables我们之前添加的参数。

不要将此参数留在ini文件中,这是一个巨大的安全漏洞。

重新启动mysql服务。

wampmanager -> MySQL -> Service -> Start/Resume Service

现在,您应该能够使用用户ID“ root”和您刚刚为该用户设置的新密码,使用phpmyadmin登录。

2020-05-17