nodeJS MySQL 连接报错Client does not support authentication protocol requested by server; consider upgra

场景:nodeJs express框架下使用MySQL数据库,正常与建立MySQL的,因为自己曾把MySQL的默认端口3306改为了3307,引起了一系列错误~

这里建立链接时,特意加上了port:3307,不然会默认找3306端口连 

 参数没问题后,还是有报错

问题:报错Client does not support authentication protocol requested by server; consider upgrading MySQL client

中文意思就是:客户端不支持服务器请求的身份验证协议,考虑升级mysql客户端

这里的根本原因是你安装了8.0版本以上的MySQL,密码加密方式发生了变化所以低版本的navicat不能进行不能自动适配,所以简单的方法就是升级navicat客户端,或者是去手动修改密码规则。

 解决方法:

方法一:

下载新版本的navicat for mysql即可

方法二:

1. 找到你的MySQL安装路径,进入bin目录下

2. 在地址栏输入cmd进行命令行

 3. 输入命令mysql -u root -p ,回车

4. 输入你的密码,回车 

 

 5. 要是你的端口就是默认的3306,可以忽略这一段,直接看序号7;因为我不是3306,就报错了。

6. 需要换一个语句:mysql -u root -P 3307 -h 127.0.0.1 -p   回车

填3307的地方就是你的端口号。然后继续输入你的密码,回车

7. 接着依次输入两条命令

  • 这里最后的root就是你修改后的密码,根据自己的需求更改 
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root'; 
  •  刷新权限
FLUSH PRIVILEGES; 

 完成,重新连接下试试就行了~

参考文章:Navicat新建连接报错1251Client does not support authentication protocol requested by server解决方法 - 知乎

  • 7
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Navicat是一款功能强大的数据库管理工具,可以于连接和管理各种类型的数据库。它支持多种数据库系统,包括MySQL、Oracle、SQL Server等。 要连接Node.jsMySQL数据库,你可以按照以下步骤进行操作: 1. 首先,确保你已经安装了Node.jsMySQL数据库,并且数据库已经正确配置和启动。 2. 在Node.js项目中,使用npm安装mysql模块,可以通过以下命令进行安装: ``` npm install mysql ``` 3. 在Node.js代码中,使用以下代码进行MySQL数据库连接: ```javascript const mysql = require('mysql'); const connection = mysql.createConnection({ host: 'localhost', // 数据库主机名 user: 'root', // 数据库用户名 password: 'password', // 数据库密码 database: 'database_name' // 数据库名称 }); connection.connect((err) => { if (err) { console.error('Error connecting to MySQL database: ' + err.stack); return; } console.log('Connected to MySQL database as id ' + connection.threadId); }); ``` 请将上述代码中的`host`、`user`、`password`和`database_name`替换为你自己的数据库信息。 4. 运行Node.js代码,如果一切正常,你应该能够成功连接MySQL数据库。 关于你提到的连接报错"Client does not support authentication protocol requested by server",这是由于MySQL服务器使用了较新的身份验证插件,而Navicat连接工具使用的MySQL客户端版本较旧,不支持该身份验证插件导致的。解决这个问题的方法有两种: 1. 更新Navicat连接工具的版本,确保使用的是最新版本,以支持新的身份验证插件。 2. 在MySQL服务器上修改用户的身份验证方式,将其改为旧的身份验证插件。可以使用以下命令进行修改: ```sql ALTER USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; ``` 将上述命令中的`username`和`password`替换为你自己的用户名和密码。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值