簡體   English   中英

無法使用 nodejs 連接到 mysql

[英]can't connect to mysql using nodejs

我是 nodejs 的新手,在創建與數據庫的連接時出現此錯誤

C:\\Users\\devashis khandelwal\\node_modules\\mysql\\lib\\protocol\\Parser.js:80 拋出錯誤; // 重新拋出非 MySQL 錯誤 ^

錯誤:ER_ACCESS_DENIED_ERROR:在 Handshake.Sequence._packetToError (C:\\Users\\devashis khandelwal\\node_modules\\mysql\\lib\\protocol\\sequences\\Sequence.js: 52:14) at Handshake.ErrorPacket (C:\\Users\\devashis khandelwal\\node_modules\\mysql\\lib\\protocol\\sequences\\Handshake.js:103:18) at Protocol._parsePacket (C:\\Users\\devashis khandelwal\\node_modules\\ mysql\\lib\\protocol\\Protocol.js:279:23) 在 Parser.write (C:\\Users\\devashis khandelwal\\node_modules\\mysql\\lib\\protocol\\Parser.js:76:12) 在 Protocol.write (C: \\Users\\devashis khandelwal\\node_modules\\mysql\\lib\\protocol\\Protocol.js:39:16) 在 Socket。 (C:\\Users\\devashis khandelwal\\node_modules\\mysql\\lib\\Connection.js:103:28) at emitOne (events.js:96:13) at Socket.emit (events.js:188:7) at readableAddChunk ( _stream_readable.js:176:18) 在 Socket.Readable.push (_stream_readable.js:134:10) -------------------- 在 Protocol._enqueue (C: \\Users\\devashis khandelwal\\node_modules\\mysql\\lib\\protocol\\Protocol.js:145:48) 在 Protocol.handshake (C:\\Users\\devashis khandelwal\\node_modules\\mysql\\lib\\protocol\\Protocol.js:52:23 ) 在 Connection.connect (C:\\Users\\devashis khandelwal\\node_modules\\mysql\\lib\\Connection.js:130:18) 在對象。 (C:\\Users\\devashis khandelwal\\node files\\demo_db_connection.js:9:5) 在 Module._compile (module.js:570:32) 在 Object.Module._extensions..js (module.js:579:10) ) at Module.load (module.js:487:32) at tryModuleLoad (module.js:446:12) at Function.Module._load (module.js:438:3) at Module.runMain (module.js:604) :10)

 var mysql = require('mysql'); var con = mysql.createConnection({ host : 'localhost', user : 'Root', password : 'my_pass', }); con.connect(function(err) { if (err) throw err; console.log("Connected!"); });

您正在與用戶Root連接,我相信它是root 您的錯誤顯然是憑據錯誤。

錯誤:ER_ACCESS_DENIED_ERROR:這是由於許可而發生的。

據我了解您上面的代碼,您需要將 Root 更改為 root

var mysql = require('mysql');

var con = mysql.createConnection({
   host     : 'localhost',
  user     : 'root',
  password : 'my_pass',
});

con.connect(function(err) {
  if (err) throw err;
  console.log("Connected!");
});

有一個類似的問題,我可以使用具有相同憑據的 CLI 登錄,但無法在 nodejs ( mysql-server 8.0 ) 中使用mysql2 通過使用%代替localhost解決了這個問題:

CREATE USER 'user'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
GRANT ALL PRIVILEGES ON db.* TO 'user'@'%';

而不是

CREATE USER 'user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
GRANT ALL PRIVILEGES ON db.* TO 'user'@'localhost';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM