Después de preparar la actualización y la actualización, mis postgres tuvieron algún problema. Traté de desinstalar postgres e instalarlo nuevamente, 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: Mountain lion.
versión casera: 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 reinstalar howbrew, cuando lo uso $ psql
, no muestra ningún mensaje de error.
Pero ejecuto rake db:migrate
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 un 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
ruby-on-rails
database
postgresql
macos
homebrew
Gary Lai
fuente
fuente
brew postgresql-upgrade-database
Respuestas:
Tuve un problema similar; un archivo pid estaba bloqueando el inicio de postgres. Arreglarlo:
rm /usr/local/var/postgres/postmaster.pid
Y entonces todo está bien.
fuente
rm: /usr/local/var/postgres/postmaster.pid: No such file or directory
tail /usr/local/var/postgres/server.log
Esto a veces puede ser un problema con una actualización de postgres.
En mi caso, sucedió al actualizar de 9.3 a 9.4.
Ver http://www.postgresql.org/docs/9.4/static/upgrading.html
OS X / Homebrew:
Intente ejecutar
postgres -D /usr/local/var/postgres
: le dará un resultado mucho más detallado si postgres no se inicia.En mi caso, la ejecución
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 volvió a funcionar bien.fuente
postgres -D /usr/local/var/postgres
le indica que el directorio de datos se inicializó con una versión anterior e incompatible de Postgres, y no desea perder sus datos locales, puede probar este hilopg_ctl -D /usr/local/var/postgres -l logfile start
y luego mi servidor se inició en segundo planobrew services start postgres
en OSX para iniciar postgres en segundo plano en lugar depostgres -D /usr/local/var/postgres
Encontré una solución que funcionó para mí aquí:
/dba/75214/psql-could-not-connect-to-server-no-such-file-or-directory
Básicamente ejecuta el siguiente comando para iniciar manualmente el servidor:
fuente
Si la instalación y desinstalación de postgres con brew no funciona para usted, mire los registros de su instalación de postgresql o:
si ve este tipo de salida:
Luego intente lo siguiente:
Luego inicie el servidor:
Fuente
fuente
En Yosemite, si el archivo pid está bloqueando el inicio de Postgres y tienes un
launchctl
demonio intentando (y fallando) cargar los demonios de la base de datos, entonces necesitarás descargar el archivo plist:Luego elimine el archivo pid
Entonces recarga el
launchctl
demoniofuente
Para cualquiera que lea esto y use Postgres.app, es posible que necesite
host: localhost
en su database.yml. http://postgresapp.com/documentation#toc_3fuente
La actualización de la base de datos me funciona
brew postgresql-upgrade-database
fuente
¡trabajó para mi!
fuente
Verifique que exista el archivo socket.
Si no es así, compruebe su postgresql.conf para ver si hay cambios en el directorio unix_socket_directory.
fuente
$ ls -l /tmp/.s.PGSQL.5432 ls: /tmp/.s.PGSQL.5432: No such file or directory $ 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
$ mkdir /var/pgsql_socket/
$ sudo mkdir /var/pgsql_socket/
$ ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/
Esta solución es un poco complicada, pero funciona. Espero que alguien tenga una mejor soluciónEl problema también se puede atribuir a un proceso bloqueado que dejó atrás el archivo postmaster.pid. Hago esto y trabajo:
fuente
El problema es porque ya hay 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.
Eliminé el archivo socket
Luego reinicié los servicios de postgres
Esto funcionó para mí.
fuente
La forma más infalible de evitar esto es hacer
Esto mantendrá su permiso de usuario, etc., todo intacto y todo se restablecerá a nuevo. Funciona todo el tiempo!
fuente
rm /usr/local/var/postgres/postmaster.pid
no funciona en Mac OS, utilice este comando.Cambiar la configuración de configuración de postresql o database.yml, cambiar $ PATH o crear enlaces simbólicos fueron innecesarios para mí. Todo lo que necesitaba hacer era
gem uninstall pg
y luegobundle
(ogem install pg
).El problema era que la gema pg se había instalado antes de homebrew postgres, por lo que estaba recogiendo la configuración de la versión de postgres que viene con MacOS. Reinstalarlo (y así reconstruir la extensión nativa) solucionó el problema.
fuente
Esto me sucedió cuando actualicé de 9.3.4 a 9.5 ya que las bases de datos son incompatibles sin actualizar.
Usé pg_upgrade de la siguiente manera:
Deja de postgres
Actualice las bases de datos:
Archive las bases de datos antiguas:
Reiniciar postgres:
Gemas actualizadas (para rieles / registro activo):
fuente
Esto es realmente lo que se supone que debes hacer:
en su lugar, debería mirar /usr/local/var/postgres/postmaster.pid
y luego mira la primera línea del archivo: este es el PID incorrecto
correr
por ejemplo:
entonces hazlo
por ejemplo
Asumiendo que todavía está funcionando
/superuser/553045/fatal-lock-file-postmaster-pid-already-exists
¡no escuche la respuesta aceptada, es mala y corromperá sus datos!
fuente
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 inclinada, se utiliza como el directorio para el socket del dominio Unix.
Ejecute psql con la opción -host
No es necesario hacer un enlace suave
fuente
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 aquí que resolvieron nuestro problema, a saber:mkdir ~/.postgres
initdb ~/.postgres
pg_ctl -D ~/.postgres start
fuente
Si postgres se instaló usando homebrew, puede solucionar esto ejecutando:
fuente
Esto funcionó para mí (como una mezcla de respuestas anteriores):
Fuente: https://coderwall.com/p/zf-fww/postgres-on-osx-with-homebrew-not-running-after-osx-crash
fuente
Si apaga el sistema sin salir de psql, postgres no habría eliminado algunos archivos.
No encontré el archivo postmaster.pid en la ubicación usr / local / var / postgres
Entonces hice lo siguiente:
El comando anterior debería permitirle iniciar postgres
fuente
Me encontré con este problema después de intentar restaurar / soltar / crear un db mientras otros procesos accedían a ellos. La solución MacOSX / Homebrew fue:
rails server
,rails console
,guard
, etc ...brew info postgres
fuente
FWIW me sucedió esto hoy, pero lo que sucedió fue que estaba ejecutando actualizaciones de Ubuntu en ese momento, que probablemente actualizaban Postgres. Una vez que se completó la actualización, pude conectarme sin problemas.
Para completar, estaba tratando de recuperar registros de la base de datos desde una consola Rails:
fuente
Parece que su psql no se ejecuta. Deberías 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 tendrá un servidor PostgreSQL listo y esperando nuevas conexiones. Cierre 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á.
fuente
Es porque un servidor anterior todavía se está ejecutando, intente cerrar todo y volver a ejecutar su aplicación.
fuente
Para aquellos que usan este comando y no funcionan o el archivo no está allí y están usando Ruby on Rails
O cualquier otro comando y simplemente seguir 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)
fuente
Tengo el mismo problema porque estoy usando un nombre de usuario de Postgres incorrecto en el código. Me he registrado en Postgres
psql -d postgres
y entro\du
a tomar el nombre de función y el nombre de usuario de Postgres correctas.Entonces, cuando enfrentan este problema, deben asegurarse de usar el nombre de usuario, la contraseña, el nombre de host y la base de datos correctos de Postgres ...
Espero que esto ayude a cualquiera
fuente
¿Has cambiado recientemente el pg_hba.conf? si acaba de comprobar si hay algún error tipográfico en:
"local" es solo para conexiones de socket de dominio Unix
local todos todos contraseña
Conexiones locales IPv4:
Hospedar todos los 127.0.0.1/32 contraseña
Conexiones locales IPv6:
host all all :: contraseña 1/128
A veces un simple error puede darnos dolor de cabeza. Espero que esto ayude y lo siento si mi inglés no es bueno en absoluto.
fuente
Esto sucede cuando el servidor postgres no se está ejecutando. Pasos para instalar Postgres correctamente a través de Homebrew en MAC:
brew install postgres
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]pg_ctl -D /Users/<username>/db -l logfile start
[Después de obtener éxito con el paso 2, se le solicitará que ejecute el paso 3. Este comando inicia el servidor manualmente.]fuente
Tengo este mismo error. Resulta que postgres simplemente no se estaba ejecutando en absoluto (por lo general, siempre se ejecuta en segundo plano, pero por alguna razón no fue hoy).
Si este es el caso, simplemente escriba
postgres
la línea de comando del directorio de su proyectofuente
Después de una tremenda cantidad de ida y vuelta, realmente se redujo a la
pg
versión de gema que estaba usando. En los rebeldes, lapg
versión0.15.1
no se conecta al puerto 5432, pero la versión0.17.1
funciona bien, muy extraño.fuente