PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

NodeJS Postgres-Fehler getaddrinfo ENOTFOUND

Wenn Sie sicher sind, dass Ihre Verbindungszeichenfolge bereits wohlgeformt ist, wie die von gnerkus beschriebene, müssen Sie als letztes Ihr Passwort überprüfen. Wenn es nicht alphanumerische Zeichen enthält, ist dies möglicherweise die Ursache des Problems. Es scheint, dass entweder Node.js oder die Art und Weise, wie Javascript selbst funktioniert, dies verursacht (ich bin mir nicht sicher, da pg-admin problemlos eine Verbindung mit meinem anfänglichen Passwort herstellen kann).

Mein Passwort enthielt '+' und '/' (Erworben durch Erstellen eines langen Json, der mit Kauderwelsch gefüllt ist, und Hashen der daraus resultierenden base64-Zeichenfolge) und ich erhalte sicher den gleichen Fehler wie bei Ihnen. Sobald ich es loswerde (aus meiner Verbindungszeichenfolge und dem Aktualisieren des Passworts meiner Datenbank), funktioniert es einwandfrei.

Oh, und ... '=' wird aber akzeptiert. Weil es scheint, dass das Problem beim URL-Decodierungsprozess auf der Datenbankseite liegt. Als ich '+' gesendet habe , ich denke, es wurde durch ' ' ersetzt was zu einem falschen Passwort führt. Und der '/' hat eine fehlerhafte URL verursacht, die die Hauptursache für unseren Fehler ist (der besagt, dass er nicht gefunden wurde). Sehen Sie sich dieses Beispiel an.

postgres://username:sdkadady88da8+8ahdajd/[email protected]/database

Sie werden sicher feststellen, dass es zusätzliche '/' gibt was dazu führt, dass eine falsche URL zusammenbricht. Also protocol:// user:[email protected] / database geändert in protocol:// [malformed user:[email protected]] / [malformed database name] / [some gibberish] wegen diesem zusätzlichen '/' .

Wenn Ihr Kollege, der über JSF darauf zugreift, seine Verbindungszeichenfolge bearbeiten kann, schlage ich vor, das Passwort auf eines zu aktualisieren, das von beiden akzeptiert wird. Wenn dies nicht möglich ist, müssen Sie einen anderen Benutzer/eine andere Rolle mit demselben Zugriffsrecht, aber einem anderen Passwort erstellen, das von Node.js verwendet werden kann.

BEARBEITEN:Oder noch besser, versuchen Sie gemäß der Diskussion hier, den Kennwortteil Ihrer Verbindungszeichenfolge zu codieren. Sie sagen, es funktioniert. Ich habe es nicht versucht, da ich mein Passwort bereits geändert habe. Da Sie dieses Problem immer noch haben, sollten Sie es zuerst versuchen, bevor Sie einen meiner beiden obigen Vorschläge ausführen.