微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

错误 1045 (28000):拒绝用户“root”@“localhost”的访问

如何解决错误 1045 (28000):拒绝用户“root”@“localhost”的访问

所以我第一次安装了 MysqL 应用程序。首先我看到命令行客户端没有打开所以我搜索解决方案。他们说我必须转到 bin 目录并手动运行它。在我运行 cmd MysqL -uroot -p 并运行它并输入密码后,它给了我错误ERROR 1045 (28000): Access denied for user 'root'@'localhost' 我尝试了 stackoverflow 上的每一个解决方案,包括禁用权限、手动运行我上面提到的、从 service.msc 启动服务、使用密码和不使用密码运行它......它只是不想工作。 提前感谢任何帮助。

解决方法

通用 MYSQL 信息

首先,阅读 mysql 手册:https://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html

这些步骤将向您展示如何关闭服务并使用不需要密码的覆盖命令启动它,然后您重置密码。来自手册:

停止 MySQL 服务器,然后使用 --skip-grant-tables 选项重新启动它。这使任何人都可以在没有密码和所有权限的情况下进行连接,并禁用 ALTER USERSET 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';

XAMPP 特定

停止 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服务。

,

错误看起来像这样

mysql -uroot -proot

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

在服务器初始启动时,假设服务器的数据目录为空,会发生以下情况:

  • 服务器已初始化。
  • SSL 证书和密钥文件在数据目录中生成。
  • 已安装并启用了 validate_password 插件。
  • 超级用户帐户 'root'@'localhost' 已创建。超级用户的密码已设置并存储在错误日志文件中。

要显示它,请使用以下命令:

shell> sudo grep 'temporary password' /var/log/mysqld.log

尽快修改root密码,用生成的临时密码登录,为超级用户设置自定义密码:

shell> mysql -u root -p #Login to root user with some password

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Your New Password';

,

我自己得到了答案。看起来,如果您收到此错误,则意味着您需要重置密码。你可以学习how to do that in MySQL from this link

并且不要忘记使用命令将 5.7 版本更改为当前安装的版本(我的是 8.0)。 在那之后,一切对我来说都很好。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。