日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 8.0认证失败_Node.js无法对MySQL 8.0进行身份验证

發布時間:2024/7/19 数据库 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 8.0认证失败_Node.js无法对MySQL 8.0进行身份验证 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我有一個Node.js程序,它使用root帳戶連接到本地MySQL數據庫(這不是生產設置).

這是創建連接的代碼:

const mysql = require('mysql');

const dbConn = mysql.createConnection({

host: 'localhost',

port: 3306,

user: 'root',

password: 'myRootPassword',

database: 'decldb'

});

dbConn.connect(err => {

if (err) throw err;

console.log('Connected!');

});

它適用于MySQL 5.7,但自從安裝MySQL 8.0后,我在啟動Node.js應用程序時遇到此錯誤:

> node .\api-server\main.js

[2018-05-16T13:53:53.153Z] Server launched on port 3000!

C:\Users\me\project\node_server\node_modules\mysql\lib\protocol\Parser.js:80

throw err; // Rethrow non-MySQL errors

^

Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client

at Handshake.Sequence._packetToError (C:\Users\me\project\node_server\node_modules\mysql\lib\protocol\sequences\Sequence.js:52:14)

at Handshake.ErrorPacket (C:\Users\me\project\node_server\node_modules\mysql\lib\protocol\sequences\Handshake.js:130:18)

at Protocol._parsePacket (C:\Users\me\project\node_server\node_modules\mysql\lib\protocol\Protocol.js:279:23)

at Parser.write (C:\Users\me\project\node_server\node_modules\mysql\lib\protocol\Parser.js:76:12)

at Protocol.write (C:\Users\me\project\node_server\node_modules\mysql\lib\protocol\Protocol.js:39:16)

at Socket. (C:\Users\me\project\node_server\node_modules\mysql\lib\Connection.js:103:28)

at emitOne (events.js:116:13)

at Socket.emit (events.js:211:7)

at addChunk (_stream_readable.js:263:12)

at readableAddChunk (_stream_readable.js:250:11)

--------------------

at Protocol._enqueue (C:\Users\me\project\node_server\node_modules\mysql\lib\protocol\Protocol.js:145:48)

at Protocol.handshake (C:\Users\me\project\node_server\node_modules\mysql\lib\protocol\Protocol.js:52:23)

at Connection.connect (C:\Users\me\project\node_server\node_modules\mysql\lib\Connection.js:130:18)

at Object. (C:\Users\me\project\node_server\main.js:27:8)

at Module._compile (module.js:652:30)

at Object.Module._extensions..js (module.js:663:10)

at Module.load (module.js:565:32)

at tryModuleLoad (module.js:505:12)

at Function.Module._load (module.js:497:3)

at Function.Module.runMain (module.js:693:10)

似乎root帳戶使用新密碼哈希方法:

> select User,Host,plugin from user where User="root";

+------+-----------+-----------------------+

| User | Host | plugin |

+------+-----------+-----------------------+

| root | localhost | caching_sha2_password |

+------+-----------+-----------------------+

…但我不知道為什么Node.js無法連接到它.我已經更新了所有的npm軟件包,但仍然存在問題.

我想保留新密碼哈希方法.我還可以使這個連接工作嗎?我是否必須等待更新MySQL Node.js包,或更改我的設置?

總結

以上是生活随笔為你收集整理的mysql 8.0认证失败_Node.js无法对MySQL 8.0进行身份验证的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。