Yo uso postgres de homebrew en mi OS X, pero cuando reinicio mi sistema, a veces los postgres no se inicia después del reinicio, y lo que he intentado manualmente para comenzar con postgres -D /usr/local/var/postgres
, pero entonces se produjo el error con el siguiente mensaje: FATAL: could not open directory "pg_tblspc": No such file or directory
.
La última vez que ocurrió, no pude ponerlo en el estado original, así que decidí desinstalar todo el sistema de postgres y luego reinstalarlo y crear usuarios, tablas, conjuntos de datos, etc ... Fue tan desagradable, pero ocurre con frecuencia en mi sistema, digamos una vez en unos meses.
Entonces, ¿por qué pierde el pg_tblspc
archivo con frecuencia? ¿Y hay algo que pueda hacer para evitar la pérdida del archivo?
No he actualizado mi homebrew y postgres a la última versión (es decir, he estado usando la misma versión). Además, todas las cosas que hice en la base de datos de postgres fue eliminar la tabla y completar los datos nuevos todos los días. No he cambiado de usuario, contraseña, etc ...
EDITAR (mbannert): Sentí la necesidad de agregar esto, ya que el hilo es el principal éxito en Google para este problema y para muchos el síntoma es diferente. Los cerveceros caseros probablemente encontrarán este mensaje de error:
No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
Entonces, si acaba de experimentar esto después de la actualización de Yosemite, ahora está cubierto por ahora leyendo este hilo.
Resuelto ... en parte.
Aparentemente, la instalación de las últimas versiones de OS X (por ejemplo, Yosemite o El Capitan) elimina algunos directorios en formato /usr/local/var/postgres
.
Para solucionar esto, simplemente vuelva a crear los directorios que faltan:
mkdir -p /usr/local/var/postgres/pg_commit_ts
mkdir -p /usr/local/var/postgres/pg_dynshmem
mkdir -p /usr/local/var/postgres/pg_logical/mappings
mkdir -p /usr/local/var/postgres/pg_logical/snapshots
mkdir -p /usr/local/var/postgres/pg_replslot
mkdir -p /usr/local/var/postgres/pg_serial
mkdir -p /usr/local/var/postgres/pg_snapshots
mkdir -p /usr/local/var/postgres/pg_stat
mkdir -p /usr/local/var/postgres/pg_stat_tmp
mkdir -p /usr/local/var/postgres/pg_tblspc
mkdir -p /usr/local/var/postgres/pg_twophase
O, de forma más concisa ( gracias a Nate ):
mkdir -p /usr/local/var/postgres/{{pg_commit_ts,pg_dynshmem,pg_replslot,pg_serial,pg_snapshots,pg_stat,pg_stat_tmp,pg_tblspc,pg_twophase},pg_logical/{mappings,snapshots}}
Volver a ejecutar pg_ctl start -D /usr/local/var/postgres
ahora inicia el servidor normalmente y, al menos para mí, sin pérdida de datos.
ACTUALIZAR
En mi sistema, algunos de esos directorios están vacíos incluso cuando Postgres se está ejecutando. ¿Quizás, como parte de alguna operación de "limpieza", Yosemite elimine los directorios vacíos? En cualquier caso, seguí adelante y creé un archivo '.keep' en cada directorio para evitar una eliminación futura.
touch /usr/local/var/postgres/{{pg_commit_ts,pg_dynshmem,pg_replslot,pg_serial,pg_snapshots,pg_stat,pg_stat_tmp,pg_tblspc,pg_twophase},pg_logical/{mappings,snapshots}}/.keep
Nota : La creación del .keep
archivo en esos directorios creará algo de ruido en su archivo de registro, pero no parece afectar negativamente a nada más.
La respuesta de Donavan es acertada, solo quería agregar que, como hice cosas diferentes con la base de datos (por ejemplo rake db:test
), busqué diferentes directorios que no se han mencionado anteriormente y se ahogaría cuando no estaban presentes, en mi caso pg_logical/mappings
, por lo que es posible que desee configurar una terminal que ejecute:
tail -f /usr/local/var/postgres/server.log
y observe si faltan carpetas mientras realiza las actividades típicas de la base de datos.
Esto es un poco fuera de tema, pero vale la pena señalarlo aquí como parte del proceso de recuperación de PostgreSQL Yosemite. Tuve el mismo problema que el anterior Y tuve un problema con PostgreSQL "aparentemente" ejecutándose en segundo plano, así que incluso después de agregar directorios no pude reiniciar. Intenté usar pg_ctl stop -m fast
para matar el servidor PostgreSQL pero no tuve suerte. También intenté seguir el proceso directamente con, kill PID
pero tan pronto como lo hice, reapareció un proceso de PostgreSQL con un PID diferente.
La clave terminó siendo un .plist
archivo que Homebrew había cargado ... La solución para mí terminó siendo:
launchctl unload /Users/me/Library/LaunchAgents/homebrew.mxcl.postgresql92.plist
Después de eso, pude iniciar PostgreSQL normalmente.
Los directorios que faltan deben estar presentes en su directorio de datos de PostgreSQL. El directorio de datos predeterminado es /usr/local/var/postgres/
. Si ha configurado un directorio de datos diferente, debe volver a crear allí los directorios que faltan. Si modificó el .plist
archivo recomendado por homebrew que inicia PostgreSQL, puede encontrar el directorio de datos allí:
cat ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
(es la -D
opción con la que comenzaste postgres :)
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/postgres</string>
<string>-D</string>
<string>/usr/local/pgsql/data</string>
En el ejemplo anterior, crearía los directorios que faltan en /usr/local/pgsql/data
, así:
cd /usr/local/pgsql/data
mkdir {pg_tblspc,pg_twophase,pg_stat,pg_stat_tmp,pg_replslot,pg_snapshots,pg_logical}
mkdir pg_logical/{snapshots,mappings}
Tenía este problema con una aplicación Rails acoplada.
En lugar de pg_tblspc y otros directorios que faltaban en / usr / local / var / postgres, faltaban en myRailsApp / tmp / db.
Querrá usar una versión similar de la solución de Donovan, solo tendrá que modificar para tener la ruta correcta para su aplicación Rails ...
mkdir /myRailsApp/tmp/db/{pg_tblspc,pg_twophase,pg_stat,pg_stat_tmp,pg_replslot,pg_snapshots}/
Además, querrá agregar un archivo .keep para asegurarse de que git no ignore los directorios vacíos.
touch /myRailsApp/tmp/db/{pg_tblspc,pg_twophase,pg_stat,pg_stat_tmp,pg_replslot,pg_snapshots}/.keep
Noté un error con un .keep en 1 de los directorios, así que simplemente lea la salida de la línea de comando cuidadosamente y ajuste según sea necesario.
La estrella de 'Gran Hermano', Claire Rehfuss, advierte a los fanáticos que no confíen en las cuentas de los spoilers.
Kristen Stewart una vez le dio un fuerte puñetazo a su coprotagonista de 'Blancanieves', Chris Hemsworth, que fue un ataque que el actor no vio venir.
En una entrevista con la revista GQ, Jin de BTS reveló que una parte de la canción de BTS y Coldplay 'My Universe' no 'llegó al corte final'.
'Scream' establece un regreso sangriento que provoca algunas nuevas direcciones, pero la nueva ola de asesinatos de Ghostface no es tan profunda como debería.
¡Nuestro mini crucigrama actualizado semanalmente combina nuestras lecturas favoritas de HowStuffWorks con pistas inteligentes!
Lavar la ropa ya es bastante malo sin tener que preocuparse por elegir el detergente adecuado. Entonces, ¿cuál es mejor? ó acaso importa?
Las familias Fugate y Combs en la zona rural de Kentucky perdieron la lotería genética, y ambos compartían un rasgo recesivo raro que hacía que su piel se viera azul cuando se casaron. ¿Cuál fue la causa de esto? ¿Y qué pasó con las familias?
Se están criando dos polluelos sin padre en un programa para salvar al cóndor de California de la extinción. ¿Cómo son posibles estos nacimientos 'vírgenes'?
La estrella de Vanderpump Rules, Katie Maloney-Schwartz, habló sobre el progreso que ha logrado en su viaje de amor propio en una publicación honesta y sincera en Instagram el jueves.
Jessica Alba compartió un encantador video en su Instagram que la muestra a ella y a sus hijos acurrucándose y jugando con los dos perros llamados Dolly y Lucy.
"Fue una situación de amor a primera vista", le dice una fuente a PEOPLE sobre Megan Fox y Machine Gun Kelly, quienes se comprometieron el fin de semana pasado durante unas vacaciones en Puerto Rico.
Según la policía, Devonne Marsh supuestamente cubrió a su novia, que no ha sido identificada, con líquido para encendedores y encendió las llamas.
Es posible que hayas visto la publicación reciente de Greta Christina sobre la puntuación. Cuando no estoy trabajando en mi propia redacción, uno de mis trabajos es ofrecer a la gente comentarios sobre los suyos (por lo que se dice, valgo mi tarifa) y, en la actualidad, ella y yo estamos editando su nuevo libro.
Una propuesta para arreglar la gobernanza de San Francisco Esta es mi propuesta para mejorar la gobernanza de la ciudad de San Francisco, a la que simplemente me referiré como RestoreSF para abreviar. Tiene solo dos partes.
Los empresarios no son personas promedio, son una raza especial. Sus ciertos rasgos de personalidad los ayudan a liderar equipos, administrar negocios y construir imperios.
La naturaleza pública e inmutable de Bitcoin requiere el regreso de los nodos mixtos para lograr una verdadera privacidad a nivel de red. Harry Halpin y Ania Piotrowska 20 de enero de 2022 Muchos concibieron originalmente Bitcoin como un dinero digital anónimo, ya que todas las transacciones se realizan como transferencias entre pares entre direcciones de billetera que actúan como seudónimos.