mysql -u root ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
时间: 2023-12-19 13:32:38 浏览: 163
当使用`mysql -u root`命令时,出现`ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)`错误,这意味着您正在尝试以root用户身份登录MySQL,但是没有提供密码。
要解决这个问题,您可以尝试以下几种方法:
1. 提供密码:在命令后面添加`-p`选项,然后输入密码。例如:
```shell
mysql -u root -p
```
然后按回车键后,系统会提示您输入密码。输入正确的密码后,您将能够成功登录MySQL。
2. 重置root用户密码:如果您忘记了root用户的密码,可以通过以下步骤重置密码:
- 停止MySQL服务。在终端中运行以下命令:
```shell
sudo service mysql stop
```
- 以跳过权限检查的方式启动MySQL服务。在终端中运行以下命令:
```shell
sudo mysqld_safe --skip-grant-tables &
```
- 连接到MySQL服务器。在终端中运行以下命令:
```shell
mysql -u root
```
- 在MySQL命令行中执行以下命令来更新root用户的密码:
```sql
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
```
其中,`new_password`是您要设置的新密码。
- 退出MySQL命令行并停止MySQL服务。在终端中运行以下命令:
```shell
quit;
sudo service mysql stop
```
- 启动MySQL服务。在终端中运行以下命令:
```shell
sudo service mysql start
```
现在,您可以使用新密码以root用户身份登录MySQL。
3. 创建新的管理员用户:如果您无法解决root用户的访问问题,您可以尝试创建一个新的管理员用户并使用该用户登录MySQL。以下是创建新用户的步骤:
- 以root用户身份登录MySQL。在终端中运行以下命令:
```shell
mysql -u root -p
```
然后输入root用户的密码。
- 在MySQL命令行中执行以下命令来创建新用户并授予管理员权限:
```sql
CREATE USER 'new_user'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'new_user'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
```
其中,`new_user`是您要创建的新用户的用户名,`password`是您要设置的密码。
- 退出MySQL命令行。在终端中运行以下命令:
```shell
quit;
```
- 使用新创建的用户登录MySQL。在终端中运行以下命令:
```shell
mysql -u new_user -p
```
然后输入新用户的密码。
阅读全文