Uso lato server Node.js. Ho provato il mio codice su localhost e tutto funziona bene. Ho comprato un server e installato Apache e node.js su di esso e testare la mia applicazione web lì. Ho modificato correttamente le configurazioni delle connessioni MySQL da localhost alle configurazioni del server.Node.js MySQL - Errore: connessione ECONNREFUSED
a testare la mia applicazione web con questa configurazione:
var mysql = require('mysql');
var mysqlConnection;
function new_mysqlConnection() {
mysqlConnection = mysql.createConnection({
host : 'myurl.at',
user : 'myusername',
database : 'mydatabase',
password : 'mypassword'
});
}
ho avviare il server node.js con:
$ node server.js
Quando carico della pagina, è visualizzato correttamente, ma quando Node. js tenta di connettersi al database ho sempre avuto il seguente errore:
Error: connect ECONNREFUSED
at errnoException (net.js:905:11)
at Object.afterConnect [as oncomplete] (net.js:896:19)
--------------------
at Protocol._enqueue (/var/www/node_modules/mysql/lib/protocol/Protocol.js:135:48)
at Protocol.handshake (/var/www/node_modules/mysql/lib/protocol/Protocol.js:52:41)
at Connection.connect (/var/www/node_modules/mysql/lib/Connection.js:119:18)
at reconnectDb (/var/www/server.js:319:18)
at app.get.email (/var/www/server.js:109:2)
at Layer.handle [as handle_request] (/var/www/node_modules/express/lib/router/layer.js:82:5)
at trim_prefix (/var/www/node_modules/express/lib/router/index.js:302:13)
at /var/www/node_modules/express/lib/router/index.js:270:7
at Function.proto.process_params (/var/www/node_modules/express/lib/router/index.js:321:12)
at next (/var/www/node_modules/express/lib/router/index.js:261:10)
L'host è sbagliato oppure è necessario specificare un numero di porta. Qual è la porta su cui è in esecuzione mysqld? Dopo averlo risolto, un'altra possibilità è che le porte del tuo host siano bloccate. Che tipo di rete stai collegando? In genere ci colleghiamo tramite localhost, o una rete interna, e non Internet. – beiller
@beiller Innanzitutto vorrei ringraziarvi per la vostra risposta veloce. Ho già provato con l'impostazione della porta nella configurazione, ma non ha funzionato. Mysql eseguito su questa porta: 'tcp 0 0 127.0.0.1:3306 0.0.0.0:* ASCOLTA 4322/mysqld' Il mio server.js è in esecuzione sulla porta 2000, se entrambi sono in esecuzione sulla stessa porta? Cosa intendi con "che tipo di rete stai collegando?" Carro armato! – Nico
No, non funzionano sulla stessa porta. Il tuo messaggio di errore significa in sostanza "la tua connessione è stata negata dal sistema operativo" IE non ti sei mai avvicinato a toccare il server mysql. Chiedendo quale rete, chiedo, è mysql e il tuo nodo.l'applicazione js in esecuzione sullo stesso server fisico? – beiller