node mysql Access denied for user ''@'localhost' (using password: NO)

今天用node 連接數(shù)據(jù)庫的時(shí)候,一直報(bào)這個(gè)錯(cuò)

Error: ER_ACCESS_DENIED_ERROR: Access denied for user ''@'localhost' (using password: NO)

網(wǎng)上找了很多資料,有的說是 mysql 版本錯(cuò),還有的說是 沒有安裝mysql,
于是我試著驗(yàn)證一下是不是真的 mysql 版本錯(cuò)誤,

貼上我的代碼

// config.js
module.exports = {
    db: {
        'port': '3306',
        'host': 'localhost',
        'user': 'root',
        'password': '12345678',
        'database': 'my_music'
    }
}


// db.js
const mysql = require('mysql')
const sqlOption = require('../config')

let pool = mysql.createPool(sqlOption)

let db = {}

db.sqlQuery = (sql, params) => {
    
    return new Promise((resolve, reject) => {

        pool.getConnection(function (err, connection) {

            if (err) return reject(err) // not connected!

            // fields為查詢的字段,一般比較少用
            connection.query(sql, params, function (error, results, fields) {

                // 如果不查詢了,就釋放連接,為了性能著想
                connection.release();

                // Handle error after the release.
                if (error) return reject(error)
                
                resolve(results)
                
            })
        })

    })

}

module.exports = db

首先我是在window下寫過一次,然后備有備份,所以在macbook重新寫了一次。 所以是在macbook下運(yùn)行才 報(bào)錯(cuò)的,于是我在重新在windows下運(yùn)行,發(fā)現(xiàn) 可以跑的呀??戳讼聎indows的package.json mysql版本號(hào)是一樣的! 這就尷尬了,不是版本問題, 怎么會(huì)出現(xiàn)拒絕訪問的問題呢....

考慮了一下,有個(gè)想法 先試著一步一步debug一下,首先我們要判斷是否連接到數(shù)據(jù)庫, 于是就在控制臺(tái)輸出

let pool = mysql.createPool(sqlOption)
console.log('pool', pool)

發(fā)現(xiàn)


為什么是undefined呢!

證明配置出現(xiàn)問題!

那問題可能出現(xiàn)在 db.js 里面的 const sqlOption = require('../config')

看到 sqlOption 就煥然大悟! 媽耶 config.js 暴露的是一個(gè)對(duì)象,里面的db方法才是我們要的配置, let pool = mysql.createPool(sqlOption) 就這么直接放進(jìn)去,不錯(cuò)才怪!

// db.js 改為
const mysql = require('mysql')
const sqlOption = require('../config').db

let pool = mysql.createPool(sqlOption)

再次運(yùn)行,就可以了...

哎 拒絕做馬大哈,健康我和TA!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容