MYSQL5.7:Access denied for user 'root'@'localhost' (using password:YES)解决方法

本文介绍了一种在忘记MySQL root密码后重新设置的方法。步骤包括:编辑my.ini文件添加临时配置,重启MySQL服务,通过命令行登录MySQL并更新root用户的密码,最后移除临时配置并重启服务。

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

1.打开MySQL目录下的my.ini文件,在文件的最后添加一行“skip-grant-tables”,保存并关闭文件;

2.重启MySQL服务;

3.通过cmd行进入MySQL的bin目录,输入“mysql -u root -p”(不输入密码),回车即可进入数据库;

4.执行“use mysql;”,使用mysql数据库;

5.执行update mysql.user set authentication_string=password(‘123456’) where user=’root’ and Host = ‘localhost’;(修改root的密码);

6.打开MySQL目录下的my.ini文件,删除最后一行的“skip-grant-tables”,保存并关闭文件;

7.mysql> flush privileges;

8.mysql> quit;

9.在命令行中输入“mysql -u root -p 123456”,即可成功连接数据库。

### 解决 MySQL 中 `ERROR 1045` 的方法 当遇到 `ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)` 错误时,通常是因为用户名、密码不匹配或者权限配置有问题。以下是详细的解决方案: #### 方法一:重置 MySQL 密码 如果忘记了 `root` 用户的密码,可以通过以下步骤重新设置密码。 1. 停止当前运行的 MySQL 服务: ```bash sudo systemctl stop mysql ``` 2. 使用跳过授权表的方式启动 MySQL: ```bash sudo mysqld_safe --skip-grant-tables & ``` 3. 连接MySQL 数据库(此时无需输入密码): ```bash mysql -u root ``` 4. 更新用户的密码(适用于 MySQL 5.7 及更高版本): ```sql USE mysql; UPDATE user SET authentication_string=PASSWORD('新密码') WHERE User='root'; FLUSH PRIVILEGES; EXIT; ``` 5. 正常重启 MySQL 服务并尝试使用新的密码登录[^1]。 #### 方法二:检查主机名绑定问题 有时错误可能源于 MySQL 配置文件中的主机名绑定问题。可以编辑 MySQL 配置文件 `/etc/mysql/my.cnf` 或者 `/etc/my.cnf` 并查找 `[mysqld]` 下的相关参数。 确保如下配置存在且正确无误: ```ini bind-address = 127.0.0.1 ``` 保存更改后重启 MySQL 服务以应用修改[^3]。 #### 方法三:验证用户权限 确认 `root` 用户是否有足够的权限执行操作。进入 MySQL 后运行命令查看权限分配情况: ```sql SHOW GRANTS FOR 'root'@'localhost'; ``` 如果没有适当权限,则授予所需权限: ```sql GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES; ``` 以上三种方式能够有效处理大部分因认证失败引发的 `ERROR 1045` 报错情形[^2]。
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值