¿Cómo puedo iniciar el servidor PostgreSQL en Mac OS X?

Resuelto Ramy asked hace 12 años • 38 respuestas

Actualización final:

Me había olvidado de ejecutar el initdbcomando.


Al ejecutar este comando

ps auxwww | grep postgres

veo que postgresno esta funcionando

> ps auxwww | grep postgres
remcat          1789   0.0  0.0  2434892    480 s000  R+   11:28PM   0:00.00 grep postgres

Esto plantea la pregunta:

¿Cómo inicio el servidor PostgreSQL?

Actualizar:

> 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

Actualización 2:

El toque no tuvo éxito, así que hice esto en su lugar:

> mkdir /usr/local/var/postgres
> vi /usr/local/var/postgres/server.log
> ls /usr/local/var/postgres/
server.log

Pero cuando intento iniciar el servidor Ruby on Rails, sigo viendo esto:

¿El servidor se ejecuta en el host "localhost" y acepta conexiones TCP/IP en el puerto 5432?

Actualización 3:

> pg_ctl -D /usr/local/var/postgres status
pg_ctl: no server running

Actualización 4:

Descubrí que no había ningún archivo pg_hba.conf (solo el archivo pg_hba.conf.sample ), así que modifiqué la muestra y le cambié el nombre (para eliminar el .sample). Aquí están los contenidos:

 # IPv4 local connections:
 host    all             all             127.0.0.1/32           trust
 # IPv6 local connections:
 host    all             all             ::1/128                trust

Pero no entiendo esto:

> pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
server starting
> pg_ctl -D /usr/local/var/postgres status
pg_ctl: no server running

También:

sudo find / -name postgresql.conf
find: /dev/fd/3: Not a directory
find: /dev/fd/4: Not a directory

Actualización 5:

sudo pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
Password:
pg_ctl: cannot be run as root
Please log in (using, e.g., "su") as the (unprivileged) user that will own the server process.

Actualización 6:

Esto parece extraño:

> egrep 'listen|port' /usr/local/var/postgres/postgresql.conf
egrep: /usr/local/var/postgres/postgresql.conf: No such file or directory

Aunque hice esto:

>sudo find / -name "*postgresql.conf*"
find: /dev/fd/3: Not a directory
find: /dev/fd/4: Not a directory
/usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf.sample
/usr/share/postgresql/postgresql.conf.sample

Entonces hice esto:

egrep 'listen|port' /usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf.sample
#listen_addresses = 'localhost'        # what IP address(es) to listen on;
#port = 5432                # (change requires restart)
                # supported by the operating system:
                #   %r = remote host and port

Entonces probé esto:

> cp /usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf.sample /usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf
> cp /usr/share/postgresql/postgresql.conf.sample /usr/share/postgresql/postgresql.conf

Sigo recibiendo el mismo mensaje "¿Está funcionando el servidor?" mensaje.

Ramy avatar Nov 02 '11 10:11 Ramy
Aceptado

El administrador de paquetes Homebrew incluye listas launchctl para iniciarse automáticamente. Para obtener más información, ejecute brew info postgres.

Empezar manualmente

pg_ctl -D /usr/local/var/postgres start

Detener manualmente

pg_ctl -D /usr/local/var/postgres stop

Iniciar automáticamente

"Para iniciar postgresql ahora y reiniciar al iniciar sesión:"

brew services start postgresql


¿ Cuál es el resultado de pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start?

¿ Cuál es el resultado de pg_ctl -D /usr/local/var/postgres status?

¿Hay algún mensaje de error en server.log?

Asegúrese de que las conexiones tcp localhost estén habilitadas en pg_hba.conf:

# IPv4 local connections:
host    all    all    127.0.0.1/32    trust

Verifique las direcciones de escucha y el puerto en postgresql.conf:

egrep 'listen|port' /usr/local/var/postgres/postgresql.conf

#listen_addresses = 'localhost'        # What IP address(es) to listen on;
#port = 5432                # (change requires restart)

Limpiar

Lo más probable es que PostgreSQL se haya instalado a través de Homebrew , Fink , MacPorts o el instalador EnterpriseDB .

Verifique el resultado de los siguientes comandos para determinar con qué administrador de paquetes se instaló:

brew && brew list|grep postgres
fink && fink list|grep postgres
port && port installed|grep postgres
James Allman avatar Nov 02 '2011 03:11 James Allman

Si desea iniciar y detener manualmente PostgreSQL (instalado a través de Homebrew ), la forma más sencilla es:

brew services start postgresql

y

brew services stop postgresql

Si tiene una versión específica, asegúrese de agregar el sufijo a la versión. Por ejemplo:

brew services start postgresql@10
malopezcruz avatar Jun 16 '2014 20:06 malopezcruz

Tuve casi exactamente el mismo problema y usted citó el comando initdb como la solución. Esta también fue la solución para mí, pero no vi que nadie la publicara aquí, así que para aquellos que la estén buscando:

initdb /usr/local/var/postgres -E utf8
 avatar Oct 27 '2012 19:10