sql >> Database >  >> RDS >> PostgreSQL

fout met postgresql datababse:Draait de server lokaal en accepteert hij verbindingen op Unix-domein socket /var/run/postgresql/.s.PGSQL.5432?

De conventie voor PostgreSQL verpakt voor Debian of Debian-derivaten zoals Ubuntu is het gebruik van /var/run/postgresql als de map voor Unix-domeinsockets. Aan de andere kant is de conventie voor zelf-gecompileerde postgres-clientbibliotheken het gebruik van /tmp , tenzij zelf anders geconfigureerd.

Dus de gebruikelijke oorzaak van deze mismatch tussen beide is een mix van zelf-gecompileerde client-side dingen met vooraf gecompileerde server-side pakketten (zelfs als client en server op dezelfde machine zijn geïnstalleerd, client-side en server-side zijn nog steeds verschillend en kan niet synchroon lopen).

Soft-linking van /tmp naar deze map, zoals gesuggereerd door de vraagsteller werkt, behalve dat de link bij elke herstart verloren gaat, omdat in het algemeen /tmp wordt leeggemaakt bij opnieuw opstarten.

Een betere optie zou zijn om toe te voegen als een item in database.yml :

  • ofwel host: /tmp als het echte socketpad /tmp . is (zelf samengestelde server, verpakte client)

  • of host: /var/run/postgresql als het echte socketpad /var/run/postgresql/ (verpakte server, zelf samengestelde client).

Wanneer de waarde in het hostveld begint met een schuine streep, weet de postgres-bibliotheek dat dit de locatie is van een map voor lokale sockets in plaats van een hostnaam. De bestandsnaam in de directory .s.PGSQL.portnumber wordt gegenereerd en mag niet worden opgegeven, alleen de map.

Een andere mogelijkheid is om de zelfgecompileerde softwarepakketten zo dicht mogelijk bij Debian te configureren, waarbij de standaardinstellingen worden genegeerd.



  1. Fix Msg 8116 "Argumentgegevenstype varchar is ongeldig voor argument 1 van session_context-functie" in SQL Server

  2. Een xml-bestand ontleden en opslaan in een database

  3. Het Hadoop Input Output System begrijpen

  4. Meerdere max()-waarden selecteren met een enkele SQL-instructie