2012-01-11 19 views
9

Ho il codice seguente in un file js:collegare ECONNREFUSED - js nodo, 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; 
    } 
}); 

Ma ottengo questo errore:

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) 

A quanto mi risulta, questo è un problema di connessione - ma come lo risolvo?

(sto lavorando su Windows 7)

Grazie !!

+0

Sembrerebbe che per qualche motivo la pagina pensa che il database è attivo e funzionante. È attivo e funzionante su localhost, giusto? –

+4

domanda ovvia: mysql è in esecuzione sulla stessa macchina, sulla porta 3306? puoi 'telnet localhost 3306'? – seppo0010

+0

quando scrivo in CMD la linea telnet localhost 3306 Ottengo: 'telnet' non è riconosciuto come comando interno o esterno, programma eseguibile o file batch. E 'questo che intendi? – kakush

risposta

17

Conosco due modi per risolverlo:

  1. In mysql.conf, commentare skip-networking.

  2. tenta di impostare la presa in questo modo:

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

Grazie a @limon, la chiave '_socket' mi ha risolto! –

+1

Grazie, skip-networking ha funzionato per me, ma la chiave no, è strano. In produzione preferirei non avere quell'opzione commentata! – nak

+3

+1 # skip-networking –