欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-06-12 22:45:30
...

由于本人是前端,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的服务打开,不然也是连不上的。

相关标签: mysql nodejs egg