Olvidé cómo comencé PostgreSQL la última vez (fue hace meses) y no recuerdo dónde se encuentra el directorio de datos. El postgrescomando parece requerir la ubicación del directorio de datos.
Estoy en MacOsX si eso ayuda.
/usr/local/postgres no existe en mi Mac.
Usando las respuestas proporcionadas a continuación, descubrí que estaba aquí:
/usr/local/var/postgres
postgresql
mac-os-x
chico al azar
fuente
fuente

dataes/usr/local/var/postgresRespuestas:
Si puede conectarse a la base de datos con acceso de superusuario, entonces
Es el camino más corto.
Si el servidor no se está ejecutando y olvidó dónde estaba el directorio de datos, entonces realmente tiene que adivinarse. Una convención específica del sistema operativo o el historial del shell pueden proporcionar sugerencias.
fuente
También puedes consultarlo
fuente
pg_configmuestra mucha información, incluido el directorio de datos:Sin embargo, esto podría ser algo específico para la preparación; sin cerveza no sé lo que muestra.
fuente
pg_config --configureno es el mismo que elbrew info postgresqlrecomendado (que es$(brew --prefix)/var/postgresy no es un enlace simbólico al que figura en la lista). Parece que la fórmula es un poco laxa al usar los indicadores de configuración correctamente.postgresql-<ver>paquete apt, pero también requierepostgresql-server-dev-<ver>$(brew --prefix postgresql)/homebrew.mxcl.postgresql.plist, mira para el camino que sigue al-D(está/usr/local/var/postgresen el mío).En Ubuntu \ Debian, prueba el
pg_lsclusterscomando.En mi máquina
fuente
Si no puede iniciar sesión (por ejemplo, olvidó su contraseña) pero el servicio se está ejecutando, ya que MacOS X es una variante posix, siempre puede verificar
pssi se pasa como argumento:En un cuadro de Linux con dos instancias de postgres en ejecución:
fuente
Abra postgresql.conf, vaya a la línea:
es tu respuesta
fuente
postgresql.conffind / -iname "postgresql.conf" 2>/dev/nullpara averiguarlopostgresql.confno tienedata_directorydefinido. Solo se hace referencia en un comentario:#data_directory = 'ConfigDir' # use data in another directoryLas versiones modernas del cliente de escritorio PostgreSQL para OSX tienen un conveniente cuadro de diálogo "Configuración del servidor" que le permitirá no solo enumerar el directorio de datos, sino también abrirlo directamente.
Muy útil si experimenta un bloqueo aleatorio de la máquina que deja un archivo de bloqueo.
fuente
En OS X 10.8 y 10.9 (no 10.10) con la aplicación de servidor instalada, en una ventana de terminal, escriba
En OS X 10.9 Mavericks, este es el resultado que obtengo de eso, que incluye el directorio de datos.
Acabo de probar esto en Yosemite (OS X 10.10) y postgres ya no aparece como un servicio en serveradmin (aunque postgres está instalado).
no enumera postgres
fuente
En Windows Server 2012, el comando
pg_configno reveló el directorio de datos por alguna extraña razón. Pero lo encontré mirando el archivoC:\Program Files\PostgreSQL\9.4\pg_env.bat, que contenía esta línea:Esa fue la respuesta que necesitaba.
fuente
¿Qué tal el uso de la utilidad estándar pg_config como
pg_config --bindirOne también podría obtener los parámetros de configuración utilizados para compilar PostgreSQL y analizarlos conpg_config --configurefuente
--bindirmuestra la ubicación de los ejecutables, no el directorio de datos.--configureestá bien, aunque uno tiene que analizar un poco la salida.Como se señaló, también se podría usar
pspara capturar la ubicación de datos como:ps -e |egrep postgres|egrep -E '[[:blank:]]+\-D'| perl -pe 's/^.*[[:blank:]]+-D[[:blank:]]+(\S+).*?$/$1/'.Esto funcionaría la mayor parte del tiempo. Devolvería algo parecido
/usr/local/pgsql/datao en cualquier otro lugar que se especificara en los parámetros de PostgreSQL en el lanzamiento.fuente
Según la respuesta de @Matthew Mark Miller, en macOS 10.14 con Postgres 11 se encuentra en:
fuente
Generalizando a partir de las 2 respuestas principales:
Para mostrar el directorio de datos directamente en la línea de comandos:
Para ver también todas las demás rutas definidas a archivos y directorios:
Salida de muestra:
(En Windows, reemplace
LIKE '/%'conLIKE '%/%'porque la ruta comienza con una letra de unidad)fuente