He instalado postgresql en OSX. Cuando ejecuto psql, obtengo
$ psql
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5433"?
Sin embargo, desde / etc / services
postgresql 5432/udp # PostgreSQL Database
postgresql 5432/tcp # PostgreSQL Database
# Tom Lane <tgl@sss.pgh.pa.us>
pyrrho 5433/tcp # Pyrrho DBMS
pyrrho 5433/udp # Pyrrho DBMS
5433 está ocupado por pyrrho, 5432 está asignado a pg. Me puedo conectar con
psql -p 5432
pero ¿por qué psql piensa que es 5433 y cómo hago que psql se vea en el lugar correcto de forma predeterminada?
postgresql
port
psql
highBandWidth
fuente
fuente
PGPORT
está definida: postgresql.org/docs/current/static/libpq-envars.htmlRespuestas:
/etc/services
es solo un aviso, es una lista de puertos conocidos. No significa que algo realmente se esté ejecutando en ese puerto o que el servicio nombrado se ejecutará en ese puerto.En el caso de PostgreSQL, es típico usar el puerto 5432 si está disponible. Si no es así, la mayoría de los instaladores elegirán el próximo puerto libre, generalmente 5433.
Puede ver qué se está ejecutando realmente con la
netstat
herramienta (disponible en OS X, Windows y Linux, con una sintaxis de línea de comandos que varía entre los tres).Esto se complica aún más en los sistemas Mac OS X por el horrible desastre de diferentes paquetes de PostgreSQL: la antigua versión de PostgreSQL de Apple integrada en el sistema operativo, Postgres.app, Homebrew, Macports, el instalador EnterpriseDB, etc.
Lo que termina sucediendo es que el usuario instala Pg e inicia un servidor desde un paquete, pero usa el cliente
psql
ylibpq
desde un paquete diferente. Por lo general, esto ocurre cuando ejecutan Postgres.app o homebrew Pg y se conectan con elpsql
que se incluye con el sistema operativo. No solo a veces tienen puertos predeterminados diferentes, sino que la Pg que se incluye con Mac OS X tiene una ruta de socket Unix predeterminada diferente , por lo que incluso si el servidor se ejecuta en el mismo puerto, no escuchará el mismo socket Unix.La mayoría de los usuarios de Mac evitan esto simplemente usando tcp / ip con
psql -h localhost
. También puede especificar un puerto si es necesario, por ejemplopsql -h localhost -p 5433
. Es posible que tenga varias instancias de PostgreSQL ejecutándose, así que asegúrese de conectarse a la correcta utilizandoselect version()
ySHOW data_directory;
.También puede especificar un directorio de socket Unix; verifique la
unix_socket_directories
configuración de la instancia de PostgreSQL a la que desea conectarse y especifique eso conpsql -h
, por ejemplopsql -h /tmp
.Una solución más limpia es corregir su sistema
PATH
para que lo que se encuentre primero en elpsql
ylibpq
asociado con el PostgreSQL que realmente está ejecutandoPATH
. Los detalles dependen de la versión de Mac OS X y de los paquetes de Pg que haya instalado. No uso Mac y no puedo ofrecer muchos más detalles de ese lado sin pasar más tiempo del que está disponible actualmente.fuente
Respuesta rápida en OSX, configure sus variables de entorno.
O lo que necesites.
fuente
El puerto predeterminado de Postgres se configura comúnmente en:
En Ubuntu esto podría ser:
Buscar
port
en este archivo.fuente
~/PostgreSQL/data/pg96
Gracias a @a_horse_with_no_name 's comentario , he cambiado mi definición PGPORT a 5432 en pg_env.sh. Eso solucionó el problema para mí. No sé por qué Postgres lo configuró inicialmente como 5433 cuando alojaba el servicio en 5432.
fuente
Parece que una de las razones más comunes por las que esto sucede es si instala una nueva versión de PostgreSQL sin detener el servicio de una instalación existente. Este fue un dolor de cabeza particular mío también. Antes de instalar o actualizar, particularmente en OS X y usar el instalador de un clic de Enterprise DB, asegúrese de verificar el estado de la instalación anterior antes de continuar.
fuente
Me encontré con este problema también, terminó teniendo dos servidores postgres ejecutándose al mismo tiempo. Desinstalé uno de ellos y cambié el puerto a 5432 y ahora funciona bien.
fuente
Para mí en PgAdmin 4 en Mac OS High Sierra , al hacer clic en la base de datos PostrgreSQL10 en Servidores en la columna izquierda, luego en la pestaña Propiedades , se mostró 5433 como el puerto en Conexión . (No sé por qué, porque elegí 5432 durante la instalación). De todos modos, hice clic en el ícono Editar debajo de la pestaña Propiedades , lo cambié a 5432 , lo guardé y eso resolvió el problema. Imagínate.
fuente