mac instalar macos postgresql

macos - instalar - postgresql server



Cómo verificar el estado del servidor PostgreSQL Mac OS X (6)

¿Cómo puedo saber si mi servidor Postgresql se está ejecutando o no?

Recibo este mensaje:

[~/dev/working/sw] sudo bundle exec rake db:migrate rake aborted! could not connect to server: Connection refused Is the server running on host "localhost" and accepting TCP/IP connections on port 5432?

Actualizar:

> which postgres /usr/local/bin/postgres > pg_ctl -D /usr/local/bin/postgres -l /usr/local/bin/postgres/server.log start pg_ctl: could not open PID file "/usr/local/bin/postgres/postmaster.pid": Not a directory

Actualización 2:

>pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start server starting sh: /usr/local/var/postgres/server.log: No such file or directory


A partir de PostgreSQL 9.3, puede usar el comando pg_isready para determinar el estado de conexión de un servidor PostgreSQL.

De los docs :

pg_isready devuelve 0 al shell si el servidor acepta conexiones normalmente, 1 si el servidor está rechazando conexiones (por ejemplo, durante el inicio), 2 si no hubo respuesta al intento de conexión, y 3 si no se realizó ningún intento (por ejemplo debido a parámetros inválidos).


Depende de dónde está instalado su servidor postgresql. Utiliza el pg_ctl para iniciar el servidor manualmente como se muestra a continuación.

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start


El pg_ctl status sugerido en otras respuestas verifica que el proceso del postmaster exista y, de ser así, informa que se está ejecutando. Eso no significa necesariamente que esté listo para aceptar conexiones o ejecutar consultas.

Es mejor usar otro método como usar psql para ejecutar una consulta simple y verificar el código de salida, por ejemplo, psql -c ''SELECT 1'' , o usar pg_isready para verificar el estado de la conexión .


La forma más sencilla de verificar los procesos en ejecución:

ps auxwww | grep postgres

Y busque un comando que se parezca a esto (su versión puede no ser 8.3):

/Library/PostgreSQL/8.3/bin/postgres -D /Library/PostgreSQL/8.3/data

Para iniciar el servidor, ejecuta algo como esto:

/Library/PostgreSQL/8.3/bin/pg_ctl start -D /Library/PostgreSQL/8.3/data -l postgres.log


Probablemente no inicie postgres.

Si instaló usando HomeBrew, el init debe ejecutarse antes de que todo lo demás sea utilizable.

Para ver las instrucciones, ejecuta brew info postgres

# Create/Upgrade a Database If this is your first install, create a database with: initdb /usr/local/var/postgres -E utf8 To have launchd start postgresql at login: ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents Then to load postgresql now: launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist Or, if you don''t want/need launchctl, you can just run: pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start

Una vez que haya ejecutado eso, debería decir algo como:

Éxito. Ahora puede iniciar el servidor de la base de datos usando:

postgres -D /usr/local/var/postgres or pg_ctl -D /usr/local/var/postgres -l logfile start

Si todavía tiene problemas, verifique su firewall. ¡Si usas uno bueno como HandsOff! y fue configurado para bloquear el tráfico, entonces su página no verá la base de datos.


Puede ejecutar el siguiente comando para determinar si el postgreso se está ejecutando:

$ pg_ctl status

También querrás configurar la variable de entorno PGDATA .

Esto es lo que tengo en mi archivo ~/.bashrc para postgres:

export PGDATA=''/usr/local/var/postgres'' export PGHOST=localhost alias start-pg=''pg_ctl -l $PGDATA/server.log start'' alias stop-pg=''pg_ctl stop -m fast'' alias show-pg-status=''pg_ctl status'' alias restart-pg=''pg_ctl reload''

Para que surtan efecto, recuerde utilizarlo de la siguiente manera:

$ . ~/.bashrc

Ahora, pruébalo y deberías obtener algo como esto:

$ show-pg-status pg_ctl: server is running (PID: 11030) /usr/local/Cellar/postgresql/9.2.4/bin/postgres