尝试执行命令时出现“‘拒绝用户‘root’@‘localhost’访问”

尝试执行命令时出现“‘拒绝用户‘root’@‘localhost’访问”

前几天,我在终端上顺利使用本地数据库上的 MySQL。然而,当我第二天重新启动并尝试使用它时,几乎所有与 MySQL 相关的操作都出现了以下错误。

mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'

我已经做这件事几个小时了。

答案1

也许你需要重置 mysql root 密码:

更改 /etc/mysql/my.cnf 配置文件并添加skip-grant-tables

[mysqld]

skip-grant-tables

重启服务,并以root身份无密码登录,然后修改root密码:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('your_new_password');

从 my.cnf 中删除skip-grant-tables条目并重新启动 mysql。

答案2

如果您不能使用 sudo mysqladmin -u root -p password 设置新密码,则可以使用 sudo mysql_secure_installation 为我修复此问题。或者:3 - 删除当前 root@localhost 帐户

mysql> DROP USER'root'@'localhost';查询正常,受影响 0 行(0,00 秒)

4 - 重新创建您的用户

mysql> CREATE USER 'root'@'%' IDENTIFIED BY ''; 查询 OK,受影响 0 行(0,00 秒)

5 – 授予用户权限(不要忘记刷新权限)

mysql> 授予所有权限TO ‘root’@‘%’;查询成功,受影响 0 行(0,00 秒)

mysql>刷新权限;

干杯。

答案3

由于您是 Linux 新手。请尝试阅读这些文章 (这个MySQL 安装相关的内容。这将帮助您理解所使用的每个命令背后的含义和原因。

相关内容