linux 登录mysql报错Access denied for user 'root'@'localhost' (using password: YES)
时间: 2023-12-10 20:35:53 浏览: 24
当我们在Linux上登录MySQL时,有时会遇到“Access denied for user 'root'@'localhost' (using password: YES)”这个错误。这个错误通常是由于用户名或密码不正确或者没有为该用户授予访问权限所致。以下是解决此问题的步骤:
1. 确认用户名和密码是否正确。在终端中输入以下命令以登录MySQL:
```shell
mysql -u root -p
```
然后输入密码。如果密码正确,您将登录MySQL服务器。如果密码不正确,则会出现“Access denied for user 'root'@'localhost' (using password: YES)”错误。
2. 如果密码不正确,请重置密码。在终端中输入以下命令以停止MySQL服务器:
```shell
sudo systemctl stop mysql
```
然后输入以下命令以启动MySQL服务器并跳过授权表:
```shell
sudo mysqld_safe --skip-grant-tables &
```
接下来,使用以下命令登录MySQL:
```shell
mysql -u root
```
然后使用以下命令更新密码:
```mysql
UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='root';
```
然后使用以下命令刷新权限:
```mysql
FLUSH PRIVILEGES;
```
最后,使用以下命令退出MySQL并重新启动MySQL服务器:
```mysql
quit;
sudo systemctl start mysql
```
3. 如果用户名和密码都正确,但是您仍然无法登录MySQL,则可能是因为没有为该用户授予访问权限。在终端中输入以下命令以登录MySQL:
```shell
mysql -u root -p
```
然后输入密码。接下来,使用以下命令为该用户授予访问权限:
```mysql
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost';
```
最后,使用以下命令刷新权限:
```mysql
FLUSH PRIVILEGES;
```
现在,您应该可以成功登录MySQL了。