Client does not support authentication protocol requested by server;……(mysql连接本地数据库报错 express node)

使用express连接本地mysql数据库时

const mysql = require('mysql');
// 创建数据库连接
const connection = mysql.createConnection({
   
   
  host: 'localhost',
  user:
### 解决 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 服务使改动生效。 - 如果是在生产环境中实施此类变更,请先做好充分测试以确保不会影响现有业务逻辑的安全性和稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值