![尝试执行命令时出现“‘拒绝用户‘root’@‘localhost’访问”](https://linux22.com/image/1082909/%E5%B0%9D%E8%AF%95%E6%89%A7%E8%A1%8C%E5%91%BD%E4%BB%A4%E6%97%B6%E5%87%BA%E7%8E%B0%E2%80%9C%E2%80%98%E6%8B%92%E7%BB%9D%E7%94%A8%E6%88%B7%E2%80%98root%E2%80%99%40%E2%80%98localhost%E2%80%99%E8%AE%BF%E9%97%AE%E2%80%9D.png)
前几天,我在终端上顺利使用本地数据库上的 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>刷新权限;
干杯。