解决“Access denied for user 'root'@'localhost' (using password: YES)”问题
2024.01.22 06:50浏览量:9简介:本文将介绍如何解决MySQL数据库中出现的“Access denied for user 'root'@'localhost' (using password: YES)”错误。通过重置root用户密码、修改root用户权限等方法,可以帮助您快速解决这个问题。
千帆应用开发平台“智能体Pro”全新上线 限时免费体验
面向慢思考场景,支持低代码配置的方式创建“智能体Pro”应用
立即体验
在MySQL数据库中,如果您遇到了“Access denied for user ‘root’@’localhost’ (using password: YES)”错误,这通常意味着您尝试以root用户身份登录时遇到了权限问题。以下是几种可能的解决方法:
方法一:重置root用户密码
- 停止MySQL服务。在命令行中输入以下命令:
sudo service mysql stop
- 以跳过授权表的方式启动MySQL服务。输入以下命令:
sudo mysqld_safe --skip-grant-tables &
```shell`3. 连接到MySQL数据库。输入以下命令:
```shell
mysql -u root
- 选择MySQL数据库。输入以下命令:
USE mysql;
- 更新root用户密码。输入以下命令,将
newpassword
替换为您想要设置的新密码:UPDATE user SET authentication_string=PASSWORD('newpassword') WHERE User='root';
- 刷新权限。输入以下命令:
FLUSH PRIVILEGES;
- 退出MySQL命令行。输入以下命令:
exit;
- 停止以跳过授权表的方式运行的MySQL服务。输入以下命令:
shell sudo mysqladmin -u root -p shutdown
shell9. 正常启动MySQL服务。输入以下命令: ```shell sudo service mysql start ```shell
现在,您应该能够使用新密码以root用户身份登录到MySQL数据库。
方法二:修改root用户权限
如果您无法重置root用户密码,或者您忘记了root用户密码,您可以尝试修改root用户的权限。请注意,这种方法可能需要一些额外的步骤,具体取决于您的操作系统和MySQL安装方式。 - 停止MySQL服务。在命令行中输入以下命令:
sudo service mysql stop
- 以跳过授权表的方式启动MySQL服务。输入以下命令:
sudo mysqld_safe --skip-grant-tables &
- 连接到MySQL数据库。输入以下命令:
mysql -u root
- 选择MySQL数据库。输入以下命令:
USE mysql;
- 修改root用户的权限。输入以下命令,将
newuser
替换为您想要设置的新用户名,将newpassword
替换为您想要设置的新密码:CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'newpassword';
GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost';
FLUSH PRIVILEGES;
- 退出MySQL命令行。输入以下命令:
exit;
- 停止以跳过授权表的方式运行的MySQL服务。输入以下命令:
sudo mysqladmin -u root -p shutdown
- 正常启动MySQL服务。输入以下命令:
shell sudo service mysql start
现在,您应该能够使用新用户名和新密码登录到MySQL数据库。请注意,这种方法将创建一个新用户并将所有权限授予该用户,而不是修改现有root用户的密码或权限。因此,在完成登录后,您可以根据需要进一步调整用户权限。

发表评论
登录后可评论,请前往 登录 或 注册