Nodejs 連接 mysql時(shí)報(bào)Error: Cannot enqueue Query after fatal error錯(cuò)誤的處理辦法
目錄
- Nodejs 連接 mysql時(shí)報(bào)Error: Cannot enqueue Query after fatal error錯(cuò)誤的處理辦法
- 一、nodejs連接mysql?
- 二、Nodejs 連接 mysql時(shí)報(bào)錯(cuò) Error: Cannot enqueue Query after fatal error
- 1.原配置參數(shù)
- 2.新配置參數(shù)
- 補(bǔ)充:Node.js連接MySQL數(shù)據(jù)庫報(bào)錯(cuò)
- 解決方法:
Nodejs 連接 mysql時(shí)報(bào)Error: Cannot enqueue Query after fatal error錯(cuò)誤的處理辦法
一、nodejs連接mysql?
npm install mysql --save
創(chuàng)建連接代碼 db.js
//導(dǎo)入mysql連接包c(diǎn)onst mysql = require("mysql");let dbconfig ={ host: "db_host", user: "db_user", password: "db_pass", database: "db_name", debug: true};function handleDisconnection() { db = mysql.createConnection(dbconfig); db.connect(function (err) {if (err) { console.log("db connect error:" + err.message + "2秒后重連"); setTimeout(handleDisconnection, 2000);} }); db.on("error", function (err) {console.log(err);if (err.code === "PROTOCOL_CONNECTION_LOST") { console.log("db error執(zhí)行重連:" + err.message); handleDisconnection();} else { throw err;} }); db.querySync = function(sql) {return new Promise(function(resolve, reject) { db.query(sql, function(error, results, fields) {if(error) reject(error);else resolve({results, fields}) })}) }; return db;}//創(chuàng)建連接connexports.db = handleDisconnection();
二、Nodejs 連接 mysql時(shí)報(bào)錯(cuò) Error: Cannot enqueue Query after fatal error
1.原配置參數(shù)
let dbconfig ={ host: "db_host", user: "db_user", password: "db_pass", database: "db_name", debug: true};
只要加上useConnectionPooling: true參數(shù)就可以了
2.新配置參數(shù)
let dbconfig ={ host: "db_host", user: "db_user", password: "db_pass", database: "db_name", useConnectionPooling: true, debug: true};
補(bǔ)充:Node.js連接MySQL數(shù)據(jù)庫報(bào)錯(cuò)
解決Node.js第一次連接MySQL數(shù)據(jù)庫時(shí)出現(xiàn)[SELECT ERROR] - ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
的錯(cuò)誤。
報(bào)錯(cuò)原因:mysql8.0以上的加密方式,Node.js還不支持。
解決方法:
進(jìn)入mysql(cmd管理員模式)
1.第一步:?jiǎn)?dòng)mysql服務(wù),可以通過net start mysql
命令實(shí)現(xiàn)
2.第二步:在命令行輸入:mysql -u用戶名 -p密碼
,回車;
-h表示服務(wù)器名,localhost表示本地,-hlocalhost 可不輸入;
-u為數(shù)據(jù)庫用戶名,root是mysql默認(rèn)用戶名;
-p為密碼,如果設(shè)置了密碼,可直接在-p后鏈接輸入,如:-p123456,用戶沒有設(shè)置密碼,顯示Enter password時(shí),直接回車即可。)
例子:mysql -hlocalhost -uroot -p123456
,包含了密碼會(huì)直接進(jìn)入
3.進(jìn)入后是這樣的:
4.輸入MySQL語句
先輸入alter user 'root'@'localhost' identified with mysql_native_password by '123456';
出現(xiàn):
再輸入flush privileges;
出現(xiàn):
問題解決了,再次運(yùn)行就不會(huì)報(bào)錯(cuò)了
參考文章:
https://www.cnblogs.com/jing-tian/p/11688073.html
到此這篇關(guān)于Nodejs 連接 mysql時(shí)報(bào)Error: Cannot enqueue Query after fatal error錯(cuò)誤的處理辦法的文章就介紹到這了,更多相關(guān)Nodejs 連接 mysql報(bào)錯(cuò)內(nèi)容請(qǐng)搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!
