我在PHPMyAdmin中修改了我的' @' localhost' 帐户的密码,并更改了(this person asking here)并锁定了自己的密码PHPMyAdmin在我的浏览器上。我正在使用WAMP 2.5。
针对该问题提供的解决方案对我不起作用,因为遗憾的是我丢失了我重新分配 root 的密码。
有些解决方案要求一个人通过命令行(including this source)重置密码,我已经通过Windows命令行尝试了这个,但没有成功,因为我现在没有权限:
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('mynewpassword');
ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'
WAMP附带一个MySQL控制台,但我无法使用它,因为它提示我输入密码,正如我所说,已经不再使用。
This video explains how to change passwords,它同意上面的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 */
答案 0 :(得分:26)
这是一种允许您非常简单地重置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>
命令提示符下输入以下两个命令,每个命令在一行的末尾都有一个分号,并在每行后按ENTER键向mysql发出命令。
Pre 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”用户标识各自具有不同的域,即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文件中作为HUGH安全漏洞。
重启mysql服务。
wampmanager -> MySQL -> Service -> Start/Resume Service
您现在应该可以使用用户ID“root”和您刚为该用户设置的新密码使用phpmyadmin登录。
答案 1 :(得分:1)
这对我的 Wampserver64-3.1.9 有效。谢谢。
array([True, False, False, False])
答案 2 :(得分:1)
以前的答案对我不起作用,因为MySQL控制台在按介绍性提示后将我拒之门外。试试这个:
使用以下内容创建文件 C:\ wamp64 \ mysql-init.txt :
UPDATE mysql.user SET Password=PASSWORD('1234') WHERE User='root';
FLUSH PRIVILEGES;
这会将用户 root 的密码重置为 1234 。然后,在Windows命令行上运行下一个命令:
C:\wamp64\bin\mysql\mysql5.7.21\bin\mysqld.exe wampmysqld --init-file=C:\\wamp64\\mysql-init.txt
根据文件系统上WAMP的安装位置更改路径。
最后,重新启动WAMP服务。