wake-up-neo.com

Node.js MySQL - Fehler: Verbinden Sie ECONNREFUSED

Ich verwende Node.js serverseitig. Ich habe meinen Code auf localhost ausprobiert und alles funktioniert gut. Ich habe einen Server gekauft, Apache und node.js darauf installiert und dort meine Webanwendung getestet. Ich habe die MySQL-Verbindungskonfigurationen von localhost zu den Serverkonfigurationen korrekt geändert. 

Ich teste meine Webanwendung mit dieser Konfiguration:

var mysql      = require('mysql');
var mysqlConnection;
function new_mysqlConnection() {
    mysqlConnection = mysql.createConnection({
      Host     : 'myurl.at',
      user     : 'myusername',
      database : 'mydatabase',
      password : 'mypassword'
    });
}

Ich starte den node.js Server mit: 

$ node server.js

Wenn ich die Seite lade, wird sie richtig angezeigt, aber wenn Node.js versucht, eine Verbindung zur Datenbank herzustellen, habe ich immer die folgende Fehlermeldung erhalten: 

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)
12
Nico

Sie müssen den Wert von socket path zum Konfigurationsobjekt hinzufügen:

socketPath: '/var/run/mysqld/mysqld.sock'

In MAMP gehen Sie zu http: // localhost: 8888/MAMP und Sie finden:

/Applications/MAMP/tmp/mysql/mysql.sock

Am Ende hast du:

var connection = mysql.createConnection({
  Host     : config.Host,
  user     : config.user,
  password : config.pass,
  database : config.db,
  socketPath: '/Applications/MAMP/tmp/mysql/mysql.sock'
});
26
tdebroc

Suchen Sie nach Ihrem MySQL-Port in Ihrem Server.

In MAMP wird standardmäßig 8889 verwendet.

Fügen Sie das Ihrer Verbindungskonfiguration hinzu.

Ihre MySQL-Konfiguration sollte so aussehen.

this.pool = mysql.createPool({
  connectionLimit: 10,
  Host: 'localhost',
  user: 'root',
  password: 'root',
  database: 'todo',
  port: '8889'
});
11
harishannam

Überprüfen Sie, ob Ihr Xampp-Server mysql ausgeführt wird oder nicht

1
Kalpit tandon

Ich hatte das gleiche Problem, aber ich löste das Problem, indem ich mich veränderte 

Host:  'localhost'

zu 

Host:   '127.0.0.1'
1
shrikantbishoye

Ich habe auch das gleiche Problem in Google Cloud mit Nginx 

geändert 

 Host: 'localhost'

zu

Host : 'cloud_instance_private_ip'

kann jemandem mit dem gleichen Problem helfen

0
CLIFFORD P Y

Ich habe auch dasselbe Problem, aber ich habe die Lösung gefunden, indem ich Folgendes hinzugefügt habe: port:"80" I connect with node.js to the server php mysql using this code: var mysql = requir ('mysql'); `

var connection=mysql.createConnection({
   port:"80",
    Host:"localhost",
    user:"root",
    password:""
});
0
salah

Es ist wahrscheinlich natürlich das Fehlen von Port und Datenbank. Zuerst schrieb ich: Host, Benutzer, Kennwort und keine Datenbank und Port. 

Hier müssen Sie angeben, wie Ihr Datenbankname lautet, wie Ihre Portnummer ist. Die Summe muss also: 1 sein. Host 2. Benutzer 3. Passwort 4. Datenbank 5. Hafen 

Es funktioniert für mich. Versuchen Sie es, wenn es auch für Sie funktioniert. 

0
doeun kol