报错信息

本人系统安装的是mysql-installer-community-8.0.18.0.msi这个版本,然后我本地使用node-mysql去连接数据库。

test.js文件

var mysql  = require('mysql');  

var connection = mysql.createConnection({
host : 'localhost', //本机地址
user : 'root', //用户
password : '123456', //密码
port: '3306', //端口号
database: 'test' //要连接的数据库
}); connection.connect(); var sql = 'SELECT * FROM table1'; //查询table1表的所有数据 connection.query(sql,function (err, result) {
if(err){
console.log('[SELECT ERROR] - ',err.message);
return;
} console.log('--------------------------SELECT----------------------------');
console.log(result);
console.log('------------------------------------------------------------\n\n');
}); connection.end();

运行node test.js

F:\All Project\test\node>node test.js
[SELECT ERROR] - ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client

报错[SELECT ERROR] - ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client

报错原因

mysql8.0以上加密方式,Node还不支持。

解决方案

第一步谷歌
查到了 https://stackoverflow.com/questions/50093144/mysql-8-0-client-does-not-support-authentication-protocol-requested-by-server
这个答案,和我报错的步骤基本一样,按照这个进行操作,登录mysql使用这个

mysql> alter user 'root'@'localhost' identified with mysql_native_password by '';
Query OK, 0 rows affected (0.27 sec) mysql> flush privileges;
Query OK, 0 rows affected (0.08 sec)

再次运行

F:\All Project\test\node>node test.js
--------------------------SELECT----------------------------
[ RowDataPacket {
id: '1',
name: 'Google',
url: 'https://www.google.com',
alexa: '1',
country: 'USA' },
RowDataPacket {
id: '3',
name: 'Facebook',
url: 'https://www.facebook.com',
alexa: '3',
country: 'USA' },
RowDataPacket {
id: '4',
name: '微博',
url: 'https://www.weibo.com',
alexa: '4',
country: 'CN' } ]
------------------------------------------------------------

成功获得数据。

node连接Mysql报错ER_NOT_SUPPORTED_AUTH_MODE的更多相关文章

  1. PHP连接MySQL报错:SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket 'MySQL' (2)

    如下所示,PHP连接MySQL报错: SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket 'MySQL' ...

  2. Asp.Net连接Mysql报错Out of sync with server

    Asp.Net连接Mysql报错Out of sync with server 原因:程序引用的MySql.Data.dll版本高于服务器版本 解决:下载一个低版本的MySql.Data.dll,项目 ...

  3. Navicat连接Mysql报错:Client does not support authentication protocol requested by server;

    Navicat连接Mysql报错:Client does not support authentication protocol requested by server: 刚安装Mysql,想用Nav ...

  4. 2013 - lost connection to mysql server at 'reading initial communication packet' 连接mysql报错

    早上刚到公司,启动项目发现连接池初始化报错,于是我打开本地mysql管理工具,测试是否可以连接.报错2013代码: 现已解决. 重启服务器mysql服务就好. 因为我连接的是本地windows系统,所 ...

  5. Navicat连接mysql报错1251 -client does not support authentication protocol

    原文https://blog.csdn.net/qq_35654080/article/details/82588188 详解请参考https://blog.csdn.net/chszs/articl ...

  6. 用Navicat for mysql连接mysql报错1251-解决办法

    今天下了个 MySQL8.0,发现Navicat连接不上,总是报错1251: 原因是MySQL8.0版本的加密方式和MySQL5.0的不一样,连接会报错. 试了很多种方法,终于找到一种可以实现的: 更 ...

  7. navicat连接mysql报错1251解决方案

    感谢原文作者:XDMFC 原文链接:https://blog.csdn.net/xdmfc/article/details/80263215 问题描述 今天下了个 MySQL8.0,发现Navicat ...

  8. navicat连接mysql报错1251的解决方法

    1.新安装的mysql8,使用破解版的navicat连接的时候一直报错,如图所示: 2.网上查找原因发现是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql ...

  9. django 连接mysql报错

    原因: 问题1. 即从mysql5.7版本之后,默认采用了caching_sha2_password验证方式. 问题2.  然后在执行 python manage.py makemigrations依 ...

随机推荐

  1. Mesa: GeoReplicated, Near RealTime, Scalable Data Warehousing

    Mesa的定义并没有反映出他的特点,因为分布式,副本,高可用,他都是依赖google的其他基础设施完成的 他最大的特点是,和传统数仓比,可以做到near real-time的返回聚合的查询结果 算入实 ...

  2. Spring Web Flux 相关概念

    Reactive Streams.Reactor 和 Web Flux 上面介绍了反应式编程的一些概念,以及 Reactor 和 Web Flux.可能读者看到这里有些乱.这里介绍一下三者的关系.其实 ...

  3. 微信支付:URL未注册问题

    起因:一个项目已经做好了,微信支付也调通的,域名 www.xxxx.com ,某天客户需要换域名,改为weixin.xxxx.com, 原先的www转向客户自己的官网,结果换了之后,发现微信支付出错: ...

  4. WebGL学习笔记(十三):拾取

    目前为止,我们还没有涉及到交互相关的内容,实际上,我们是需要知道我们点击的地方下面的第一个物体的信息,这个过程称为拾取. 简单拾取实现 我们可以通过颜色来获取是否成功点击,具体方式如下: 场景中有一个 ...

  5. powershell 开windows 端口

    @echo off @echo 请以管理员身份运行 set /p portRemark=请输入端口备注: set /p port=请输入端口号: powershell -command "N ...

  6. 经常开车的朋友必备 它是你的GPS

    经常开车的朋友肯定知道,每天都要查下当天的限行尾号,还有哪条路拥堵.还有,最不想发生的事儿就是车子快没油的时候,附近查不到加油站. 现在用这款小程序,可以轻松解决上述这些头痛的事情.扫描下面二维码,进 ...

  7. 统一异常处理:HandlerExceptionResolver

    SpringExceptionResolver.java package com.mmall.common; import com.mmall.exception.PermissionExceptio ...

  8. EasyNVR网页摄像机无插件H5、谷歌Chrome直播方案-Onvif(一)使用Onvif协议进行设备发现以及指定设备信息探测

    背景分析 众所周知,EasyNVR不拘泥.不受限于摄像机的品牌厂商及其配套平台,只要是网络监控摄像机IPC.硬盘录像机NVR.且设备支持标准的RTSP/Onvif协议,都可以接入实时视频流进入Easy ...

  9. Spring Shell入门介绍

    目录 Spring Shell是什么 入门实践 基础配置 简单示例 注解@ShellMethod 注解@ShellOption 自定义参数名称 设置参数默认值 为一个参数传递多个值 对布尔参数的特殊处 ...

  10. Mac系统Android 命令行签名

    jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore keystore文件位置 -signedjar ~/afterSign ...