2012-01-11 133 views
9

我有一個js文件中的下一個代碼:連接ECONNREFUSED - 節點JS,SQL

var mysql = require('mysql'); 
var TEST_DATABASE = 'nodejs_mysql_test'; 
var TEST_TABLE = 'test'; 
var client = mysql.createClient({ 
    user: 'root', 
    password: 'root', 
}); 

client.query('CREATE DATABASE '+TEST_DATABASE, function(err) { 
    if (err && err.number != mysql.ERROR_DB_CREATE_EXISTS) { 
    throw err; 
    } 
}); 

但我得到這個錯誤:

node.js:201 
     throw e; // process.nextTick error, or 'error' event on first tick 
     ^
Error: connect ECONNREFUSED 
    at errnoException (net.js:632:11) 
    at Object.afterConnect [as oncomplete] (net.js:623:18) 

據我瞭解,這是一個連接問題 - 但我該如何解決它?

(我正在使用Windows 7)

謝謝!

+0

這似乎是出於某種原因,頁面認爲數據庫啓動並運行。它在localhost上運行,對吧? – 2012-01-11 19:26:15

+4

明顯的問題是:mysql是在同一臺機器上運行的,在端口3306上?你可以'telnet localhost 3306'? – seppo0010 2012-01-11 19:26:43

+0

當我在CMD中寫入行 telnet localhost 3306 我得到: 'telnet'不被識別爲內部或外部命令, 可操作的程序或批處理文件。 這是你的意思嗎? – kakush 2012-01-11 19:39:13

回答

17

我知道兩種方法來解決這個問題:

  1. mysql.conf,評論skip-networking

  2. 嘗試設置插座這樣的:

    var client = mysql.createClient({ 
    user: uuuu, 
    password: pppp, 
    host: '127.0.0.1', 
    port: '3306', 
    _socket: '/var/run/mysqld/mysqld.sock',}); 
    
+0

謝謝@limon,'_socket'鍵將我整理出來! – 2012-03-15 22:42:35

+1

謝謝,評論skip-networking爲我工作,但關鍵沒有,這很奇怪。在製作時我寧願沒有這個選項評論! – nak 2012-06-30 07:29:04

+3

+1#跳過網絡 – 2013-02-21 21:29:33