stop start run postgres mac instancia crear macos postgresql homebrew

macos - run - start postgresql mac terminal



Postgres no pudo conectarse al servidor (30)

Después de que realicé la actualización y la actualización, mi postgres tuvo algún problema. Intenté desinstalar postgres e instalar de nuevo, pero no funcionó tan bien.

Este es el mensaje de error. (También recibí este mensaje de error cuando intento hacer rake db: migrate)

$ psql psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

¿Cómo puedo resolverlo?

Versión para Mac: león de montaña.

versión homebrew: 0.9.3

Versión de postgres: psql (PostgreSQL) 9.2.1

Y esto es lo que hice.

12:30 ~/D/works$ brew uninstall postgresql Uninstalling /usr/local/Cellar/postgresql/9.2.1... 12:31 ~/D/works$ brew uninstall postgresql Uninstalling /usr/local/Cellar/postgresql/9.1.4... 12:31 ~/D/works$ psql --version bash: /usr/local/bin/psql: No such file or directory 12:33 ~/D/works$ brew install postgresql ==> Downloading http://ftp.postgresql.org/pub/source/v9.2.1/postgresql-9.2.1.tar.bz2 Already downloaded: /Library/Caches/Homebrew/postgresql-9.2.1.tar.bz2 ...... ...... ==> Summary /usr/local/Cellar/postgresql/9.2.1: 2814 files, 38M, built in 2.7 minutes 12:37 ~/D/works$ initdb /usr/local/var/postgres -E utf8 The files belonging to this database system will be owned by user "laigary". This user must also own the server process. The database cluster will be initialized with locale "en_US.UTF-8". The default text search configuration will be set to "english". initdb: directory "/usr/local/var/postgres" exists but is not empty If you want to create a new database system, either remove or empty the directory "/usr/local/var/postgres" or run initdb with an argument other than "/usr/local/var/postgres". 12:39 ~/D/works$ mkdir -p ~/Library/LaunchAgents 12:39 ~/D/works$ cp /usr/local/Cellar/postgresql/9.2.1/homebrew.mxcl.postgresql.plist ~/Library/LaunchAgents/ 12:39 ~/D/works$ launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist homebrew.mxcl.postgresql: Already loaded 12:39 ~/D/works$ pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start server starting 12:39 ~/D/works$ env ARCHFLAGS="-arch x86_64" gem install pg Building native extensions. This could take a while... Successfully installed pg-0.14.1 1 gem installed 12:42 ~/D/works$ psql --version psql (PostgreSQL) 9.2.1 12:42 ~/D/works$ psql psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

Ahora, después de que reinstalé howbrew, cuando uso $ psql , no muestra ningún mensaje de error.

Pero ejecuto rake db:migrate en mi aplicación de rieles, muestra:

could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"? /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in `initialize'' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in `new'' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in `connect'' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:329:in `initialize'' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:28:in `new'' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:28:in `postgresql_connection'' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:309:in `new_connection'' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:319:in `checkout_new_connection'' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:241:in `block (2 levels) in checkout'' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:236:in `loop'' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:236:in `block in checkout'' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:233:in `checkout'' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:96:in `block in connection'' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:95:in `connection'' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:404:in `retrieve_connection'' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_specification.rb:170:in `retrieve_connection'' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_specification.rb:144:in `connection'' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:107:in `rescue in create_database'' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:51:in `create_database'' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:40:in `block (3 levels) in <top (required)>'' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:40:in `each'' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:40:in `block (2 levels) in <top (required)>'' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:205:in `call'' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:205:in `block in execute'' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:200:in `each'' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:200:in `execute'' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:158:in `block in invoke_with_call_chain'' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:151:in `invoke_with_call_chain'' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:144:in `invoke'' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:116:in `invoke_task'' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:94:in `block (2 levels) in top_level'' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:94:in `each'' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:94:in `block in top_level'' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:133:in `standard_exception_handling'' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:88:in `top_level'' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:66:in `block in run'' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:133:in `standard_exception_handling'' /usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:63:in `run'' /usr/local/bin/rake:32:in `<main>'' Couldn''t create database for {"adapter"=>"postgresql", "encoding"=>"unicode", "database"=>"riy_development", "pool"=>5, "username"=>nil, "password"=>nil}

Finalmente encuentro la solución.

$ sudo mkdir /var/pgsql_socket/ $ sudo ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/

Esta solución es poco complicada, pero funciona. Espero que alguien tenga una mejor solución.

Actualizar

Esto también funciona para mí.

rm /usr/local/var/postgres/postmaster.pid


¿Has cambiado recientemente el pg_hba.conf? Si acaba de comprobar cualquier error tipográfico en:

"local" es solo para conexiones de socket de dominio Unix

local toda la contraseña

Conexiones locales IPv4:

alojar todos todos 127.0.0.1/32 contraseña

Conexiones locales IPv6:

host all all :: 1/128 contraseña

A veces un simple error puede darnos un dolor de cabeza. Espero que esta ayuda y lo siento si mi inglés no es bueno en absoluto.


Actualizar la base de datos funciona para mí

brew postgresql-upgrade-database


Cambiar las configuraciones de configuración de postresql o database.yml, cambiar $ PATH o crear enlaces simbólicos no fue necesario para mí. Todo lo que tenía que hacer era gem uninstall pg y luego un bundle (o gem install pg ).

El problema era que la gema pg se había instalado antes de homebrew postgres, así que estaba recogiendo la configuración de la versión de postgres que viene con MacOS. Reinstalarlo (y por tanto reconstruir la extensión nativa) solucionó el problema.


Compruebe que el archivo de socket existe.

$ ls -l /tmp/.s.PGSQL.5432 srwxrwxrwx 1 you wheel 0 Nov 16 09:22 /tmp/.s.PGSQL.5432

Si no es así, compruebe su postgresql.conf para un cambio de directorio_un_socket.

$ grep unix_socket /usr/local/var/postgres/postgresql.conf #unix_socket_directory = '''' # (change requires restart) #unix_socket_group = '''' # (change requires restart) #unix_socket_permissions = 0777 # begin with 0 to use octal notation


Después de una tremenda cantidad de ida y vuelta, realmente se redujo a la versión pg gem que estaba usando. En 0.15.1 , la versión de la pg 0.15.1 no se conectaría al puerto 5432, pero la versión 0.17.1 funciona bien, muy extraño.


El problema también se puede atribuir a un proceso bloqueado que dejó el archivo postmaster.pid. Hago esto y trabajo de

$ brew services stop postgresql $ rm /usr/local/var/postgres/postmaster.pid # adjust path accordingly to your install $ brew services start postgresql


En Yosemite, si el archivo pid está bloqueando el inicio de Postgres y tiene un demonio launchctl intenta (y falla) cargar los daemons de la base de datos, entonces deberá descargar el archivo plist:

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

A continuación, elimine el archivo pid

$ rm /usr/local/var/postgres/postmaster.pid

A continuación, vuelva a cargar el demonio launchctl

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


Encontré este problema también en MacOS Sierra y cuando ejecutamos pg_ctl como se describió anteriormente, tuvimos el siguiente error pg_ctl: no database directory specified and environment variable PGDATA unset . Así que seguimos los pasos que resolvieron nuestro problema, a saber:

mkdir ~/.postgres

initdb ~/.postgres

pg_ctl -D ~/.postgres start



Esto a veces puede ser un problema con una actualización postgres.

En mi caso, sucedió cuando se actualizó de 9.3 a 9.4.

Consulte http://www.postgresql.org/docs/9.4/static/upgrading.html

OS X / Homebrew:

Intente ejecutar postgres -D /usr/local/var/postgres - le dará una salida mucho más detallada si no se inicia postgres.

En mi caso, ejecutar rm -rf /usr/local/var/postgres && initdb /usr/local/var/postgres -E utf8 eliminó mis bases de datos antiguas y luego reinicializó el esquema db de postgres.

Gracias a https://github.com/Homebrew/homebrew/issues/35240 por esa solución.

Después de regenerar mis bases de datos (con rake db:create ) todo funcionó bien de nuevo.


Esto es en realidad lo que se supone que debes hacer:

en su lugar, debería mirar /usr/local/var/postgres/postmaster.pid

y luego observe la primera línea del archivo: este es el PID incorrecto

correr

ps aux | grep <PID>

por ejemplo:

ps aux | grep 12345

entonces hazlo

kill <PID>

por ejemplo

kill 12345

Suponiendo que todavía se está ejecutando

https://superuser.com/questions/553045/fatal-lock-file-postmaster-pid-already-exists

No escuches la respuesta aceptada, es mala y corromperá tus datos.



Esto me sucedió cuando actualicé de 9.3.4 a 9.5, ya que las bases de datos son incompatibles sin actualizar.

Utilicé pg_upgrade de la siguiente manera:

Dejar de postgres

$ brew services stop postgresql

Actualizar las bases de datos:

$ pg_upgrade / -d /usr/local/var/postgres / -D /usr/local/var/postgres9.5 / -b /usr/local/Cellar/postgresql/9.3.4/bin/ / -B /usr/local/Cellar/postgresql/9.5.0/bin/ / -v

Archivar las bases de datos antiguas:

$ mv /usr/local/var/postgres /usr/local/var/postgres9.3.save $ mv /usr/local/var/postgres9.5 /usr/local/var/postgres

Reinicie postgres:

$ brew services start postgresql

Gemas actualizadas (para rieles / registro activo):

$ gem uninstall pg $ gem uninstall activerecord-postgresql-adapter $ bundle install


Esto sucede cuando el servidor postgres no se está ejecutando. Pasos para instalar Postgres correctamente a través de Homebrew en MAC:

  1. brew install postgres

  2. initdb /Users/<username>/db -E utf8 [Esto inicializa postgres para usar el directorio dado como el directorio de la base de datos. Normalmente no se recomienda utilizar el directorio de usuarios para el almacenamiento de la base de datos. Edite el archivo sudoers para agregar initdb y comandos similares y luego ejecute initdb en / usr / local / var / postgres]

  3. pg_ctl -D /Users/<username>/db -l logfile start [Después de tener éxito con el paso 2, se le pedirá que ejecute el paso 3. Este comando inicia manualmente el servidor.]


FWIW esto me sucedió hoy, pero lo que sucedió fue que estaba ejecutando actualizaciones de Ubuntu en ese momento, que probablemente estaban actualizando Postgres. Una vez que se completó la actualización, pude conectarme sin ningún problema.

Para completar, estaba intentando recuperar registros de la base de datos desde una consola de Rails:

development (main):0 > a = MyModel.find 73694 PG::ConnectionBad: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?


La mejor manera de evitar esto es hacer

brew reinstall postgresql

Esto mantendrá su permiso de usuario, etc. todo intacto y todo se restablecerá a nuevo. Funciona todo el tiempo!


Me encontré con este problema después de intentar restaurar / soltar / crear una base de datos mientras otros procesos accedían a ellos. MacOSX / Homebrew fix fue:

  1. cierre todos los demás procesos de acceso al rails server rails console , rails console , guard , etc ...
  2. carga / descarga usando los comandos que se encuentran en brew info postgres
  3. Ejecutar restaurar / soltar / crear desde antes

Ninguna de las soluciones anteriores funcionó para mí.

El problema se debe a que ya existe un servicio en ejecución en el puerto 5432 y no podemos establecer una conexión de socket psql a través de este puerto.

Quité el archivo socket

rm -rf /tmp/.s.PGSQL.5432/

Luego reinicialicé los servicios de postgres.

postgres -D /usr/local/var/postgres

Esto funcionó para mí.


Opción psql

-h nombre de host --host = nombre de host

: Especifica el nombre de host de la máquina en la que se ejecuta el servidor. Si el valor comienza con una barra diagonal, se usa como el directorio para el socket de dominio Unix.

$ grep "port/|unix_socket" /etc/postgresql/9.1/main/postgresql.conf port = 5433 # (change requires restart) unix_socket_directory = ''/var/run/postgresql'' # (change requires resta $ netstat -nalp | grep postgres unix 2 [ ACC ] STREAM LISTENING 106753 4349/postgres /tmp/.s.PGSQL.5432 unix 2 [ ACC ] STREAM LISTENING 10377 1031/postgres /var/run/postgresql/.s.PGSQL.5433

Ejecuta psql con la opción -host

$ psql -p 5433 -h /var/run/postgresql

No hay necesidad de hacer un enlace blando.


Para aquellos que usan este comando y no funcionan o el archivo no está allí y están usando Ruby on Rails

rm /usr/local/var/postgres/postmaster.pid

O cualquier otro comando y solo sigue fallando.

Resolví este problema desinstalando con Brew. Tuve que desinstalar con brew 2 veces, porque en la primera desinstalación quedará otra versión de postgresql, con la segunda desinstalación se completará el proceso.

Instalar postgresql con Brew

Luego suelte, cree y migre las bases de datos del proyecto.

(No olvide iniciar el servidor postgresql)



Para mí fue una actualización de Apache la que causó el problema. Todavía podría ejecutar psql en la consola o llamar a db directamente desde kdevelop. También funcionó para agregar "host = localhost" a la cadena de conexión.

PERO el problema real fue que apache había cambiado a tmp privado.

Solución: Actualice /usr/lib/systemd/system/apache2.service y cambie PrivateTmp = true a PrivateTmp = false.

Estoy trabajando en OpenSuse OS, pero creo que algo similar podría suceder en Mac.


Parece que tu psql no se ejecuta. Debes ejecutarlo antes de conectarte. Puede hacerlo utilizando Postgres.app solo para Mac OS. (Descargue e instale esta aplicación http://postgresapp.com ) Abra la aplicación, y tiene un servidor PostgreSQL listo y en espera de nuevas conexiones. Cierra la aplicación, y el servidor se apaga. También puede encontrar esta información aquí http://www.postgresql.org/download/macosx/ . Espero que esto te ayudará.


Se debe a que un servidor anterior aún está en ejecución, intente cerrar todo y volver a ejecutar su aplicación.


Si la instalación y desinstalación de postgres con brew no funciona para usted, consulte los registros de su instalación de postgresql o:

postgres -D /usr/local/var/postgres

Si ves este tipo de salida:

LOG: skipping missing configuration file "/usr/local/var/postgres/postgresql.auto.conf" FATAL: database files are incompatible with server DETAIL: The data directory was initialized by PostgreSQL version 9.4, which is not compatible with this version 9.6.1.

A continuación, intente lo siguiente:

rm -rf /usr/local/var/postgres && initdb /usr/local/var/postgres -E utf8

A continuación, inicie el servidor:

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

Source


Si postgres se instaló usando homebrew, puede arreglarlo ejecutando:

brew link postgres


Tenía un problema similar; un archivo pid bloqueaba el inicio de postgres. Arreglarlo:

rm /usr/local/var/postgres/postmaster.pid

y entonces todo está bien.


Tengo el mismo problema porque estoy usando un nombre de usuario incorrecto de Postgres en el código. psql -d postgres postgres psql -d postgres e psql -d postgres /du para tomar el nombre del rol y corregir el nombre de usuario de Postgres.

Entonces, cuando se enfrentan a este problema, deben asegurarse de utilizar el nombre de usuario, contraseña, nombre de host y base de datos correctos de Postgres ...

Espero que esto ayude a cualquiera


Tengo este mismo error. Resulta que postgres simplemente no se estaba ejecutando en absoluto (por lo general, siempre se está ejecutando en segundo plano, pero por alguna razón no fue hoy).

Si este es el caso, simplemente escriba postgres en la línea de comando del directorio de su proyecto


brew services start postgres

¡trabajó para mi!