nodejs连接mysql报错:Client does not support authentication protocol requested by server; consider upgrad

本文记录了在Mac上使用MySQL 8.0遇到的密码认证错误,详细介绍了如何通过正确的方法修改MySQL密码,并成功使用阿里集团的Egg.js框架进行Node.js项目的数据库连接配置。

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

由于本人是前端,mysql只是偶尔做一下小项目会用到,大概一年没有用了。
今天用mac通过brew下载了一个8.0.12版本的mysql;然后用egg进行连接,egg是阿里封装的一个nodejs框架。
下载到本地的mysql;初始密码我是留空的。
所以在nodejs项目中配置mysql连接数据的时候我的password=’’;

结果报错了:

Client does not support authentication protocol requested by server; consider upgrad

我怀疑是MySQL密码的问题;于是我到网上找了很多种修改密码方法:

//开启mysql服务
mysql.server start
//进入mysql
mysql -u root -p
//修改密码方案1(错)
USE mysql SET PASSWORD FOR 'root'@'localhost' = OLD_PASSWORD('密码');
//修改密码方案2(错)
UPDATE mysql.user SET Password = OLD_PASSWORD('密码')WHERE Host = 'localhost' AND User = 'root';
//修改密码方案3(对)
USE mysql; 
ALTER USER 'root'@'localhost'IDENTIFIED WITH mysql_native_password BY '密码';
//重启
FLUSH PRIVILEGES;

修改密码后的nodejs项目的配置文件

client: {
      // host
      host: 'localhost',
      // 端口号
      port: '3306',
      // 用户名
      user: 'root',
      // 密码
      password: '123456',
      // 数据库名
      database: 'blog',
    },

最后用了方案3终于连接上了;记住你运行nodejs项目时一定要先将mysql的服务打开,不然也是连不上的。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值