重置密码解决MySQL for Linux错误 ERROR 1045 (28000): Access denied for user 'root'@'localhost'

本文详细介绍了一种解决MySQL密码遗忘的方法,通过编辑my.cnf文件跳过密码验证,使用SQL命令更新root账户密码,最后恢复配置并重启MySQL,帮助读者轻松重置密码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一般这个错误是由密码错误引起,解决的办法自然就是重置密码。

假设我们使用的是root账户。

1.重置密码的第一步就是跳过MySQL的密码认证过程,方法如下:

#vim /etc/my.cnf(注:windows下修改的是my.ini)

在文档内搜索mysqld定位到[mysqld]文本段:

/mysqld(在vim编辑状态下直接输入该命令可搜索文本内容)

在[mysqld]后面任意一行添加“skip-grant-tables”用来跳过密码验证的过程,如下图所示:

保存文档并退出:

#:wq

2.接下来我们需要重启MySQL:

service mysqld restart

3.重启之后输入#mysql即可进入mysql。

4.接下来就是用sql来修改root的密码

mysql> use mysql;

mysql> update user set password=password("你的新密码") where user="root";

但是设置密码的时候,输入update mysql.user set password=password('123456') where user='root';发现password字段不存在,突然间心态大崩。

7、最后执行select * from mysql.user;命令查看找到user表authentication_string这个列的值与password的只相似,于是将这个字段的值备份一下。

update mysql.user set authentication_string=password('123456') where user='root';

mysql> flush privileges;

mysql> quit

到这里root账户就已经重置成新的密码了。

5.编辑my.cnf,去掉刚才添加的内容,然后重启MySQL。大功告成!

 

### MySQL ERROR 1045 (28000) 访问被拒绝问题解决方案 当遇到 `ERROR 1045 (28000): Access denied for user 'root'@'localhost'` 的错误时,通常是因为用户名、密码不匹配或者权限配置存在问题。以下是具体的解决办法: #### 方法一:重置 root 密码 如果忘记了 root 用户的密码密码设置有误,可以通过以下 SQL 命令更新 root 用户的密码。 ```sql UPDATE mysql.user SET authentication_string=PASSWORD('新密码') WHERE User='root'; FLUSH PRIVILEGES; ``` 上述命令会将 root 用户的密码更改为指定的新密码[^2]。需要注意的是,在执行此操作前,需确保已通过其他方式登录到 MySQL 数据库(例如使用无密码模式或其他管理员账户)。完成修改后记得刷新权限以使更改生效。 #### 方法二:检查主机名绑定情况 有时该问题是由于用户的 host 字段未正确配置引起。“root”账号可能仅允许从特定 IP 地址连接而非 localhost 。可以查询当前用户表来确认具体设定: ```sql SELECT Host,User FROM mysql.user WHERE User='root'; ``` 假如发现存在多个不同Host值关联至同一个Root帐户,则需要依据实际需求调整这些记录中的host字段为合适的值(如'%',表示接受任何地址)[^3]。 #### 方法三:验证插件兼容性 自 MySQL 8.0 开始,默认身份认证机制由原来的mysql_native_password变更为caching_sha2_password ,这可能导致旧版客户端无法正常工作。因此建议尝试切换回传统算法试试看效果如何 : ```sql ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '您的密码'; FLUSH PRIVILEGES ; ``` 以上步骤能够帮助大多数情况下因版本差异引发的身份验证失败状况得到缓解[^4]。 #### 注意事项 - 执行敏感操作之前一定要做好数据备份以防万一发生意外丢失。 - 修改完毕之后再次测试能否成功登陆系统验证成果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值