连接MySql出现Client does not support authentication protocol requested by server错误

本文提供了一种解决MySQL连接出错的方法,通过以管理员身份运行DOS,切换到MySQL安装目录的bin目录,使用特定命令登录MySQL,修改root用户密码,刷新权限数据表,最终解决连接问题。

解决办法:

  1. 以管理员身份运行dos,并切换到MySql安装目录的bin目录,如图所示:
  2. 输入命令mysql -u root -h 127.0.0.1 -p登录到MySql(有密码的话继续输入密码并回车),如图所示:
  3. 输入命令use mysql;切换到mysql数据库,如图所示:
  4. 输入命令ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';,如图所示:

    注意其中的 'root'@'%'中的%代表root用户对应的host值为%(%代表可以使用IP或localhost连接到MySql)、其中的123456代表MySql的登录密码
  5. 输入命令flush privileges刷新权限数据表,如图所示:
  6. 输入命令quit退出MySql登录,如图所示:

        到此,连接出错的问题即可解决。

 

### 解决 Mac 上 Node.js 连接 MySQL 数据库时遇到的 "Client does not support authentication protocol" 错误 当尝试通过 Node.js 应用程序连接到本地 MySQL 数据库并收到错误 `Client does not support authentication protocol requested by server` 时,这通常是因为服务器配置了较新的身份验证插件(如 `caching_sha2_password`),而旧版本的 MySQL 客户端可能无法处理这种类型的加密方式。 #### 方法一:更改默认的身份验证方法为更兼容的形式 可以通过修改 MySQL 用户账户使用的密码哈希算法来解决问题。具体操作如下: 进入命令行工具后登录至 MySQL 控制台: ```bash mysql -u root -p ``` 执行 SQL 命令更新用户的认证方式为 `mysql_native_password` 并重置其密码: ```sql ALTER USER 'your_username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password'; FLUSH PRIVILEGES; ``` 上述语句中的 `'your_username'` 和 `'new_password'` 需要替换为实际存在的用户名以及想要设置的新密码[^1]。 #### 方法二:升级 MySQL Connector/Node.js 或者整个 MySQL Server 版本 如果不想改变现有的安全策略,则可以考虑将应用程序依赖项中涉及的所有 MySQL 组件都更新到最新稳定版。对于基于 Node.js 的项目来说,这意味着安装最新的官方驱动包——Connector/Node.js。 使用 npm 来获取最新版本的 connector: ```bash npm install mysql2 --save ``` 之后,在代码里引入新模块替代原来的 `require('mysql')` 调用: ```javascript const mysql = require('mysql2'); // ... ``` 这种方法不仅解决了当前的问题,还能够享受到性能改进和其他功能增强带来的好处[^4]。 #### 注意事项 - 修改完这些设置以后记得重启 MySQL 服务使改动生效。 - 如果是在生产环境中实施此类变更,请先做好充分测试以确保不会影响现有业务逻辑的安全性和稳定性。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值