2012-11-18 55 views
5

我想運行一個簡單的節點樣本訪問MySQL數據庫MySQL數據庫和我得到以下錯誤,錯誤的援助:ER_ACCESS_DENIED_ERROR:拒絕訪問用戶'root'@'ubuntu.local '(使用密碼:YES)需要與訪問如何使用Node.js

var mysql  = require('mysql'); 
var connection = mysql.createConnection({ 
    host  : '192.168.0.12', 
    user  : 'root', 
    password : 'password', 
    database : 'app' 
}); 

connection.connect(); 

connection.query('SELECT * from users', function(err, rows, fields) { 
    if (err) throw err; 

    console.log('The solution is: ', rows[0]); 
}); 

connection.end(); 

以上是提前訪問使用node.js.Any建議MySQL的,以什麼我可能是做錯了,感謝代碼。

+1

可以從控制檯連接到MySQL? '-h的mysql -u 192.168.0.12 -p根app'(輸入請求後的密碼) –

+0

最有可能你需要設置主機「localhost」的 –

+0

沒了,我不能,執行你給我的命令,但是如果我更換IP地址與本地主機它從命令行工作,但在節點腳本中,我得到以下錯誤 - 連接ECONNREFUSED。 – anonymous123

回答

8

我有我在那裏得到同樣的錯誤了類似的問題。

對我的回答結束了,我用不同的端口。默認情況下,在MySQL中期望的3306端口,但是我用的是甲基苯丙胺,在那裏我增加了一個端口定義到我的數據庫連接MySQL服務器的端口是一旦指定爲8889,這是罰款:

var connection = mysql.createConnection({ 
    port: 8889, 
    user: 'root', 
    password : 'password', 
    database : 'my_database' 
}); 

注意:這是Mac使用MAMP,沒有嘗試過它在Ubuntu或Windows。

3

我得到完全相同的問題。我無法通過nodejs中的mysql模塊進行連接,但能夠通過終端中的mysql客戶端進行連接(mysql -u root -p1111 -h localhost mydb)

事實證明,mysql模塊將「 localhost「設置爲127.0.0.1。 這不會通過(mysql -u root -p1111 -h 127.0.0.1 mydb)工作。 請參閱Issue 734

所以我必須在MySQL中爲127.0.0.1設置一個密碼,它解決了這個問題。

說明

連接到MySQL通過控制檯:

mysql -u root -p mysql 

和運行

SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD('Add-Your_password-here'); 

Source

+0

當運行'mysql -u root -p mysql'得到這個錯誤'拒絕訪問用戶root'@'localhost'(使用密碼:YES)' – jose920405

-1

其實解決的辦法是比你想象的更容易。將主機更改爲數據庫連接的127.0.0.1。

+5

請你能提供一些更詳細的信息,說明爲什麼改變主機到「127.0.01」修復了數據庫連接?因爲OP使用的是似乎與數據庫服務器相關的IP地址。 –

1

我已經在這個問題上很長一段時間了,所有論壇我做中,一個簡單的解決方案解決我的問題。我的密碼有一些特殊的字符。我把它改成了一個更簡單的,比如「onlyletters」,它的功能非常完美。可能是nodejs mysql模塊中的一個編碼問題,我可以...希望它能幫助你們中的一些人...

+0

與我同在密碼:[A-Za-z0-9 \。] {64}爲我工作, – Myonara

0

我有一個類似的問題,我的nodejs項目。我使用knex.js作爲querybuilder,它是組態。

當主機值爲127.0.0.1時發生此問題,當我將127.0.0.1更改爲localhost時,問題消失。

var knex = require('knex')({ 
    client: 'mysql', 
    connection: { 
     **host: 'localhost',** 
     user: 'userNew', 
     password: 'password', 
     database: 'appDb' 
    } 
});