前几天,我在终端上顺利使用本地数据库上的 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>刷新权限;
干杯。