MySQL for mac 连接报错:Access denied for user 'root'@'localhost' (using password: YES)

本文介绍了一种在MySQL中重置root用户密码的方法。通过在命令行中执行一系列操作,可以将root用户的密码重置为新的密码。

如题,解决方法是:给root用户重新设置密码,步骤如下:

1. 绝对路径登录mysql,终端输入命令:/usr/local/mysql/bin/mysql -u root -p
2. 输入密码:第一次登录默认不用输入密码,直接回车
3. 输入命令:use mysql
4. 输入修改root密码命令:UPDATE user SET Password=PASSWORD('123456') where USER='root';


第四步中的123456为root的新密码,然后重启mysql就能连接上了

### 问题分析 当出现 `Access denied for user 'root'@'localhost' (using password: YES)` 错误时,通常意味着 MySQL 服务器接收到连接请求,但无法验证用户身份。可能的原因包括密码错误、权限配置问题、MySQL 服务未正常运行、或者配置文件中存在影响认证的设置。 ### 解决方法 1. **确认密码是否正确** 确保输入的密码准确无误。如果怀疑密码被更改或遗忘,可以通过跳过权限验证的方式重置密码[^2]。 2. **修改配置文件以跳过权限验证** 在 `my.ini` 文件的 `[mysqld]` 段落中添加以下内容,使 MySQL 启动时不加载权限表: ```ini skip-grant-tables ``` 保存文件后重启 MySQL 服务,此时可以无需密码登录数据库[^2]。 3. **重置 root 用户密码** 使用命令行进入 MySQL 数据库后执行以下 SQL 语句来更新密码: ```sql use mysql; update user set authentication_string='' where user='root'; flush privileges; ``` 接下来设置新密码并确保密码策略符合要求: ```sql ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER; alter user 'root'@'localhost' identified by '123456'; grant all privileges on *.* to "root"@'localhost'; flush privileges; ``` 完成后移除 `skip-grant-tables` 设置并重启 MySQL 服务[^2]。 4. **检查 MySQL 服务是否正常运行** 如果 MySQL 服务未启动,使用以下命令启动服务: ```bash net start mysql ``` 若服务启动失败,检查是否有其他进程占用 3306 端口,使用以下命令查找并终止冲突进程: ```bash tasklist | findstr 3306 taskkill /PID <PID> /F ``` 5. **重新安装 MySQL(可选)** 如果上述方法无效,可尝试卸载并重新安装 MySQL。卸载前应备份数据,并确保删除原有的 `data` 目录和 `my.ini` 配置文件。安装过程中确保正确配置 root 密码和权限[^1]。 6. **检查用户权限配置** 确保 `root@localhost` 用户具有正确的权限。可以使用以下命令查看用户权限信息: ```sql SELECT User, Host, authentication_string FROM mysql.user; ``` 若权限配置异常,可使用以下命令授予全局权限: ```sql GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES; ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值