No dudes en divulgar nuestra web y códigos con otro, necesitamos tu ayuda para ampliar nuestra comunidad.
Solución:
/etc/services
es solo un consejo, es una lista de puertos conocidos. No significa que realmente se esté ejecutando algo en ese puerto o que el servicio mencionado 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 lo que realmente se está ejecutando usando el netstat
herramienta (disponible en OS X, Windows y Linux, con sintaxis de línea de comandos que varía en los tres).
Esto se complica aún más en los sistemas Mac OS X por el horrible desorden de los diferentes paquetes de PostgreSQL: la versión antigua de PostgreSQL de Apple integrada en el sistema operativo, Postgres.app, Homebrew, Macports, el instalador de EnterpriseDB, etc.
Lo que termina sucediendo es que el usuario instala Pg e inicia un servidor desde un paquete, pero usa el psql
y libpq
cliente de un embalaje diferente. Por lo general, esto ocurre cuando ejecutan Postgres.app o homebrew Pg y se conectan con el psql
que se envió con el sistema operativo. No solo estos a veces tienen diferentes puertos predeterminados, sino que el Pg que se envió con Mac OS X tiene un puerto diferente. ruta de socket unix predeterminadapor lo que incluso si el servidor se ejecuta en el mismo puerto, no escuchará el mismo socket de Unix.
La mayoría de los usuarios de Mac solucionan esto simplemente usando tcp/ip con psql -h localhost
. También puede especificar un puerto si es necesario, por ejemplo psql -h localhost -p 5433
. Es posible que tenga varias instancias de PostgreSQL ejecutándose, así que asegúrese de conectarse a la correcta usando select version()
y SHOW data_directory;
.
También puede especificar un directorio de socket de Unix; comprobar el unix_socket_directories
configuración de la instancia de PostgreSQL a la que desea conectarse y especifíquelo con psql -h
p.ejpsql -h /tmp
.
Una solución más limpia es corregir su sistema PATH
de manera que la psql
y libpq
asociado con el PostgreSQL que está ejecutando en realidad es lo que se encuentra primero en el PATH
. Los detalles de eso dependen de su 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 gastar más tiempo del que está disponible actualmente.
Respuesta rápida en OSX, configure sus variables de entorno.
>export PGHOST=localhost
>export PGPORT=5432
O lo que necesites.
El puerto predeterminado de Postgres se configura comúnmente en:
sudo vi //data/postgresql.conf
En Ubuntu esto podría ser:
sudo vi //main/postgresql.conf
Buscar port
en este archivo.