我已经尝试了我找到的每个修复程序,但我无法更改我的root MySQL密码.在shell,如果我输入mysql -u root
,我得到
用户'root'@'localhost'拒绝访问(使用密码:否)
当我转到PHP MyAdmin时,我得到了这个:
#1045 - 用户'root'@'localhost'拒绝访问(使用密码:YES)
这一切都始于我被迫输入MySQL的新密码.我不知道如何解决这个问题,我很绝望.
谢谢.
首先,阅读mysql手册:https://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html
这些步骤将向您展示如何关闭服务并使用不需要密码的覆盖命令启动它,然后重置密码.从手册:
停止MySQL服务器,然后使用该--skip-grant-tables
选项重新启动它.这使得任何人都可以在没有密码和所有权限的情况下进行连接,并禁用帐户管理语句,例如ALTER USER
和SET PASSWORD
.因为这是不安全的,您可能希望--skip-grant-tables
与--skip-networking
防止远程客户端连接一起使用.
使用mysql客户端连接MySQL服务器; 无需密码,因为服务器启动时--skip-grant-tables
:
shell> mysql
在mysql客户端中,告诉服务器重新加载授权表,以便帐户管理语句工作:
mysql> FLUSH PRIVILEGES;
然后更改'root'@'localhost'
帐户密码.将密码替换为您要使用的密码.要更改具有不同主机名部分的root帐户的密码,请修改使用该主机名的说明.
MySQL 5.7.6及更高版本:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
MySQL 5.7.5及更早版本:
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
或直接在用户表上:
UPDATE mysql.user SET password=PASSWORD('mynewpassword') WHERE user='root';
停止MySQL服务.打开命令窗口.切换到XAMPP MySQL目录:
> cd \xampp\mysql\bin\
没有安全性运行服务(注意你运行的是mysqld,而不是mysql):
> mysqld.exe --skip-grant-tables
MySQL服务将在此窗口中运行,因此打开另一个命令窗口并切换到XAMPP MySQL目录:
> cd \xampp\mysql\bin\
运行MySQL客户端:
> mysql
更新密码:
mysql> UPDATE mysql.user SET password=PASSWORD('mynewpassword') WHERE user='root';
退出MySQL:
mysql> \q
使用任务管理器取消仍在运行的mysqld.exe.重启mysql服务.