mySQL-Connection-Probleme mit node.js und MAMP (ECONNREFUSED)

Mit node.js ist es mit wenigen Code-Zeilen möglich eine Verbindung zu einer mySQL-Datenbank herzustellen und daraufhin Queries auszuführen. Ermöglicht wird dies durch das Modul node-mysql welches via Node Package Manager installiert werden kann (zum Beispiel: npm install mysql@2.0.0-alpha2). Wer auf seinem lokalen Rechner MAMP benutzt, kann eventuell Probleme bei der Verbindung zur mySQL-Datenbank bekommen.

Gibt man Benutzername, Passwort, Datenbank und Port an, erhält man folgendes Fehler-Objekt:
[js]{"code":"ECONNREFUSED","errno":"ECONNREFUSED","syscall":"connect","fatal":true}[/js]

Die Angabe des Socket-Paths half mir das Problem in den Griff zu bekommen:
[js]var mysql = require("mysql");

var connection = mysql.createConnection({
user: "YOUR USERNAME",
password: "YOUR PASSWORD",
database: "YOUR DATABASE",
socketPath: ‚/Applications/MAMP/tmp/mysql/mysql.sock‘
});[/js]

Wichtig: Nach Angabe des Paths dürfen keine Werte für „host“ und „port“ mehr mitgesendet werden, da diese sonst den Socket-Path überschreiben. Der Pfad muss bei euch nicht zwingend dort sein wo er bei mir ist. Ich nutze MAMP Pro und kann via http://localhost:8888/MAMP nachsehen wo genau der Socket-Pfad ist. Sollte diese Änderung nichts bewirken kann auch folgender Socket-Path probiert werden:

[js]socketPath: ‚/var/run/mysqld/mysqld.sock'[/js]


Durch erstere Änderung konnte ich mich erfolgreich zu meiner Datenbank (eingerichtet via MAMP) verbinden.