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
Encontré una solución que me funcionó aquí:
Básicamente ejecuta el siguiente comando para iniciar manualmente el servidor:
pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log 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 funcionó para mí (como una mezcla de respuestas anteriores):
$ rm /usr/local/var/postgres/postmaster.pid
$ pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
Fuente: https://coderwall.com/p/zf-fww/postgres-on-osx-with-homebrew-not-running-after-osx-crash
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:
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 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:
- cierre todos los demás procesos de acceso al
rails server
rails console
,rails console
,guard
, etc ... - carga / descarga usando los comandos que se encuentran en
brew info postgres
- 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 cualquier persona que lea esto y use Postgres.app, es posible que necesite host: localhost
en su database.yml. http://postgresapp.com/documentation#toc_3
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
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!