[英]how to fix the error of connecting database with nodejs in linux?
我正在嘗試用nodejs連接mysql,但是我的代碼有問題,請幫忙!
var express = require("express");
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : 'admin',
database : 'dbname',
});
var app = express();
connection.connect(function(err){
if(!err) {
console.log("Database is connected ... \n\n");
} else {
console.log("Error connecting database ... \n\n");
}
});
app.listen(3000);
在終端我得到這個輸出:
voldemort@Lenovo:~/Documents/cloudprint$ node server.js 連接數據庫時出錯...
默認情況下,MySQL 客戶端使用安全身份驗證建立與服務器的連接。
insecureAuth:允許連接到要求舊(不安全)身份驗證方法的 MySQL 實例。 (默認:false) 1
查看您評論中的錯誤回溯,您的服務器當前未配置為允許安全身份驗證。 2
如果您的 MySQL 服務器版本<= 5.6.4
則安全身份驗證已關閉,您可能希望在客戶端建立連接時通過啟用insecureAuth
來啟用舊的身份驗證協議。
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : 'admin',
database : 'dbname',
insecureAuth: true
});
但是,如果您的 MySQL 服務器版本
>= 5.6.5
,我建議您更新用戶的密碼以使用更安全的密碼散列函數。 有分 步文檔可以為用戶帳戶完成此操作。
如果您發現您運行的是不支持安全身份驗證協議的舊版本,您可能還想更新您的 MySQL 服務器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.