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


ACTUALIZACIÓN FINAL:

Olvidé ejecutar el comando initdb.

</ FINAL UPDATE>

ejecutando este comando

ps auxwww | grep postgres

Veo que postgres no se está ejecutando

> 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 comienzo 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 fue exitoso, así que lo hice en su lugar:

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

Pero cuando trato de iniciar el servidor de rails, todavía veo esto:

Is the server running on host "localhost" and accepting
TCP/IP connections on port 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 pg_hba.conf (solo pg_hba.conf.sample), así que modifiqué la muestra y le cambié el nombre (para quitar la .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

además:

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

sin embargo, 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

así que 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

así que 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 

sigue recibiendo el mismo "¿Se está ejecutando el servidor?" mensaje.


763
2017-11-02 03:55


origen


Respuestas:


los Homebrew El administrador de paquetes incluye listas de lanzamiento para comenzar automáticamente. Para más información ejecuta brew info postgres.

Comience manualmente:

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

Detener manualmente:

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

Comience automáticamente:

"Para tener launchd start 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 el server.log?

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

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

Compruebe el listen_addresses 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

Postgres probablemente fue instalado a través de Homebrew, Soplón, MacPorts o el EnterpriseDB instalador.

Compruebe la salida de los siguientes comandos para determinar con qué gestor de paquetes se instaló:

brew && brew list|grep postgres
fink && fink list|grep postgres
port && port installed|grep postgres

1449



Si desea iniciar y detener manualmente postgresql (instalado a través de homebrew), la manera más fácil es:

brew services start postgresql

y

brew services stop postgresql

275



Tenía casi el mismo problema y 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 buscan:

initdb /usr/local/var/postgres -E utf8

168



Otro enfoque es usar lunchy gem (una envoltura para launchctl):

brew install postgresql
initdb /usr/local/var/postgres -E utf8
gem install lunchy

Para comenzar postgres:

lunchy start postgres

Para detener postgres:

lunchy stop postgres

Para más información, consulte: "Cómo instalar PostgreSQL en una Mac con Homebrew y Lunchy"


78



Aquí mis 2 centavos: hice un alias para postgres pg_ctl y lo puse en .bash_profile (mi versión de postgresql es 9.2.4, y la ruta de la base de datos es /Library/PostgreSQL/9.2/data).

alias postgres.server="sudo -u postgres pg_ctl -D /Library/PostgreSQL/9.2/data"

Lanzar nueva terminal.

¿Y entonces? Puede iniciar / detener su servidor postgresql con esto:

postgres.server start
postgres.server stop

69



Si su computadora se reinició abruptamente

Primero, debes eliminar el archivo /usr/local/var/postgres/postmaster.pid Luego puede reiniciar el servicio utilizando uno de los muchos otros métodos mencionados según su instalación.

Puede verificar esto mirando los registros de Postgres para ver qué podría estar pasando: tail -f /usr/local/var/postgres/server.log


56



La manera más limpia con mucho para iniciar / detener / reiniciar postgres si lo has instalado a través de brew es simplemente descargar y / o cargar el archivo de configuración de launchd que viene con la instalación:

launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

La primera línea detendrá postgres y la segunda línea la iniciará. No es necesario especificar ningún directorio de datos, etc. ya que todo está en ese archivo.


33