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)
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'
});
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'
});
Überprüfen Sie, ob Ihr Xampp-Server mysql ausgeführt wird oder nicht
Ich hatte das gleiche Problem, aber ich löste das Problem, indem ich mich veränderte
Host: 'localhost'
zu
Host: '127.0.0.1'
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
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:""
});
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.