ACTUALIZACIÓN FINAL:
Había olvidado ejecutar el initdb
comando.
</ ACTUALIZACIÓN FINAL>
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 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 fue exitoso, 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 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 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
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
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
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 obteniendo lo mismo "¿Se está ejecutando el servidor?" mensaje.
fuente
sudo
, es decirsudo pg_ctl...
Respuestas:
El administrador de paquetes Homebrew incluye listas de inicio para iniciar automáticamente. Para más información ejecutar
brew info postgres
.Comience manualmente:
pg_ctl -D /usr/local/var/postgres start
Parar manualmente:
pg_ctl -D /usr/local/var/postgres stop
Comience automáticamente:
"Para iniciar, inicie postgresql ahora y reinicie 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 tcp localhost estén habilitadas en pg_hba.conf:
Verifique listen_addresses y el puerto en postgresql.conf:
egrep 'listen|port' /usr/local/var/postgres/postgresql.conf
Limpiar
Postgres probablemente se instaló 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ó:
fuente
brew services start postgresql
es una respuesta más actualizada y directa.Si desea iniciar y detener manualmente postgresql (instalado a través de homebrew), la forma más fácil es:
y
Si tiene una versión específica, asegúrese de sufijar la versión, por ejemplo:
fuente
brew services
antes ... esta es la única solución que me funciona. <3 gracias!brew tap gapple/services
hará que el comando de servicios de preparación vuelva a funcionarbrew tap homebrew/services
todavía funciona github.com/Homebrew/homebrew-servicesinitdb
se haya ejecutado con éxito. De lo contrario, falla silenciosamente (pero parece haber funcionado, y el servicio se muestra como iniciado enbrew services list
.)brew services restart postgresql
, ya que comencé el db con pg_ctl obrew services start
dije "podría estar ejecutándose otro servidor" y detuve el db con pg_ctl colgado.Tuve casi 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 lo publicara aquí, así que para aquellos que lo están buscando:
fuente
rm -rf /usr/local/var/postgres
y esto funcionó para míchown _your username on your comp_ usr/local/var/postgres
), luego initdb. Después de eso, el servidor se inicia automáticamente cuando reinicia (si siguió las instrucciones de Homebrew para eso) o manualmentepg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
.initdb
(incluida la eliminación del directorio anterior si es necesario),brew services start postgresql
funcionarm -rf
incluir todo lo que está actualmente en su base de datos lo asusta un poco, en lugar de eliminarlo por completo, puede usar algo comomv /usr/local/var/postgres /usr/local/var/postgres.backup
moverlo a un nuevo directorio de respaldo y luego ejecutar el comando para que la base de datos comience nuevamente.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, dependiendo de 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
fuente
tail -f /usr/local/var/postgres/server.log
si debe eliminar ese archivo. ref coderwall.com/p/zf-fww/…~/homebrew/var/postgres/postmaster.pid
postmaster.pid
si la computadora se reinicia abruptamente?Otro enfoque es usar gemy lunchy (un contenedor para launchctl):
Para iniciar postgres:
Para detener postgres:
Para obtener más información, consulte: " Cómo instalar PostgreSQL en una Mac con Homebrew y Lunchy "
fuente
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).
Lanzar nueva terminal.
¿Y entonces? Puede iniciar / detener su servidor postgresql con esto:
fuente
La manera más limpia , con mucho, para iniciar / detener / postgres reinicio si ha instalado a través de
brew
está simplemente para descargar y / o cargar el archivo de configuración launchd que viene con la instalación:La primera línea detendrá postgres y la segunda línea lo iniciará. No es necesario especificar ningún directorio de datos, etc., ya que todo está en ese archivo.
fuente
brew services start postgres
(y detener). Tira un-v
final y podrás ver lo que está haciendo.Para iniciar el servidor postgresql:
para finalizar el servidor postgresql:
También puede crear un alias a través de CLI para que sea más fácil:
Con estos puede simplemente escribir "pg-start" para iniciar Postgres y "pg-stop" para cerrarlo.
fuente
pg_ctl: directory "/usr/local/var/postgres" is not a database cluster directory
¿cómo solucionar esto?¡Para fines de prueba, creo que la aplicación PostgreSQL es la mejor opción!
Ejecute una aplicación y el servidor estará en funcionamiento. Cierra la aplicación y el servidor se cae.
http://postgresapp.com/
fuente
cuando instalas postgresql usando homebrew:
Al final de la salida verá estos métodos para iniciar el servidor:
Creo que esta es la mejor manera.
Puede agregar alias a su .profile para mayor comodidad.
fuente
Para una base de datos de prueba desechable rápida, puede ejecutar el servidor en primer plano.
Inicializar una nueva base de datos postgres en un nuevo directorio
Inicie el servidor en primer plano (ctrl-C para detener el servidor)
En otra sesión de shell, conéctese al servidor
fuente
Tengo el mismo problema y realizo todas las actualizaciones desde la primera publicación. Pero después de comprobar el archivo de registro:
Veo la verdadera causa:
Después de cambiar el permiso en este directorio
El servidor postgres tiene inicio.
Cada vez verifique el archivo de registro.
fuente
PostgreSQL está integrado en Server.app disponible a través de App Store en Mountain Lion. Eso significa que ya está configurado, y solo necesita iniciarlo y luego crear usuarios y bases de datos.
Propina : No comience con la definición de $ PGDATA, etc., tome las ubicaciones de los archivos tal como están.
Tendría este archivo: /Library/Server/PostgreSQL/Config/org.postgresql.postgres.plist
Para comenzar:
El proceso comenzó con argumentos:
/Applications/Server.app/Contents/ServerRoot/usr/bin/postgres_real -D / Library / Server / PostgreSQL / Data -c listen_addresses = 127.0.0.1, :: 1 -c log_connections = on -c log_directory = / Library / Logs / PostgreSQL -c log_filename = PostgreSQL.log -c log_line_prefix =% t -c log_lock_waits = on -c log_statement = ddl -c logging_collector = on -c unix_socket_directory = / private / var / pgsql_socket -c unix_socket_soper_group_ _ _ _ _ _ _ _ _ _ _ _ = grupo_socket_grupo = _
Puedes sudo:
O conectar:
Puede encontrar el directorio de datos, la versión, el estado de ejecución, etc. con
fuente
Variación sobre esta respuesta: https://stackoverflow.com/a/13103603/2394728
fuente
Para fines de desarrollo, una de las formas más simples es instalar Postgres.app desde el sitio oficial . Se puede iniciar / detener desde la carpeta de aplicaciones o utilizando los siguientes comandos en la terminal:
fuente
killall
Probablemente no sea la mejor manera de detener una base de datos.fuente
Si ha instalado usando brew, el siguiente comando debería ser suficiente.
Y esto a veces puede no funcionar, en ese caso debajo de dos comandos definitivamente deberían funcionar
fuente
ninguna de las respuestas anteriores solucionó el problema para mí a pesar de recibir los mismos mensajes de error. Pude volver a poner en funcionamiento mi instancia al eliminar el archivo postmaster.pid existente que estaba bloqueado y no permitir conexiones.
fuente
Para macports, solo use el comando cargar / descargar y el nombre del puerto del servidor en ejecución:
para que no tenga que recordar dónde
/Library/LaunchDaemons/org.macports.postgresql96.plist
se encuentra el archivofuente
https://hub.docker.com/_/postgres
fuente
Si instaló Postgres usando el instalador EnterpriseDB, entonces lo que @Kenial sugirió es el camino a seguir.
fuente
eso funcionó para mí (macOS 10.13)
sudo -u postgres /Library/PostgreSQL/9.6/bin/pg_ctl start -D /Library/PostgreSQL/9.6/data
o primero
cd /Library/PostgreSQL/9.6/bin/
fuente
$ brew upgrade postgres
Me lo arregló.
Eso, por supuesto, actualizará su versión de postgres y actualizará / instalará cualquier dependencia.
fuente
Para Mac / OSX, me gusta mucho LaunchRocket para este y otros servicios en segundo plano que utilicé en el desarrollo.
https://github.com/jimbojsb/launchrocket
Este sitio tiene buenas instrucciones sobre la instalación: http://macappstore.org/launchrocket/
Esto le brinda una buena pantalla en las Preferencias del sistema que le permite iniciar, reiniciar, rootear, iniciar al iniciar sesión.
fuente
Esto funcionó para mí cada vez, inspirado por Craig Ringer:
proctools incluye pkill. Si no tiene Brew: https://brew.sh/
fuente
En aras de la exhaustividad: compruebe si está dentro de una instancia
Tmux
oScreen
, el inicio no funcionará desde allí.De: /superuser/879640/error-while-trying-to-start-postgres-installed-via-homebrew-operation-not-permi/898585
Esto lo resolvió para mí.
fuente
Hay algunos casos extremos que tal vez sean útiles para alguien:
Hay una opción, que tendrá postgres.pid lleno de algún PID. Pero si reinicia su máquina, y antes de que Postgress vuelva nuevamente, algún otro proceso tomará ese PID. Si eso sucede, tanto el estado de pg_ctl como el servicio de preparación de la cerveza que se le preguntó sobre el estado de postgres, le indicarán que está ARRIBA. Solo ps aux | grep y verifica si realmente es postgreso
fuente
¡Homebrew es el camino!
Para iniciar el servicio:
Para enumerarlo:
para detener el servicio .:
fuente
Si no lo instaló con brew y directamente desde el paquete mac, esto funcionó para mí para PostgreSQL 12 al usar todas las ubicaciones predeterminadas, variables, etc.
fuente
Estaba enfrentando el mismo problema. Intenté todas estas soluciones pero ninguna funcionó.
Finalmente logré hacerlo funcionar cambiando postgres HOST en la configuración de Django de
localhost
a127.0.0.1
.Saludos si ayuda.
fuente