Olvidé cómo comencé PostgreSQL la última vez (fue hace meses) y no recuerdo dónde se encuentra el directorio de datos. El postgres
comando 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
data
es/usr/local/var/postgres
Respuestas:
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_config
muestra 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 --configure
no es el mismo que elbrew info postgresql
recomendado (que es$(brew --prefix)/var/postgres
y 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/postgres
en el mío).En Ubuntu \ Debian, prueba el
pg_lsclusters
comando.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
ps
si 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.conf
find / -iname "postgresql.conf" 2>/dev/null
para averiguarlopostgresql.conf
no tienedata_directory
definido. Solo se hace referencia en un comentario:#data_directory = 'ConfigDir' # use data in another directory
Las 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_config
no 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 --bindir
One también podría obtener los parámetros de configuración utilizados para compilar PostgreSQL y analizarlos conpg_config --configure
fuente
--bindir
muestra la ubicación de los ejecutables, no el directorio de datos.--configure
está bien, aunque uno tiene que analizar un poco la salida.Como se señaló, también se podría usar
ps
para 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/data
o 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