Я забыл, как запустил PostgreSQL в последний раз (это было несколько месяцев назад), и я не помню, где находится каталог данных. Команда, postgres
кажется, требует расположения каталога данных.
Я на MacOsX, если это поможет.
/usr/local/postgres
не существует на моем Mac.
Используя ответы, приведенные ниже, я обнаружил, что это было здесь:
/usr/local/var/postgres
postgresql
mac-os-x
случайный парень
источник
источник
data
это/usr/local/var/postgres
Ответы:
Если вы можете подключиться к базе данных с правами суперпользователя, то
это самый короткий путь.
Если сервер не работает, и вы забыли, где находится каталог данных, то вам действительно нужно догадаться. Соглашение о конкретной операционной системе или история оболочки могут содержать подсказки.
источник
Вы также можете запросить его
источник
pg_config
показывает много информации, включая каталог данных:Впрочем, это может быть специфическая вещь для варева; без варева я не знаю что это показывает.
источник
pg_config --configure
отличается отbrew info postgresql
рекомендованного (который является$(brew --prefix)/var/postgres
символической ссылкой и не является символом ссылки в списке). Кажется, формула немного слаба при правильном использовании флагов конфигурации.postgresql-<ver>
пакетом apt, но требует такжеpostgresql-server-dev-<ver>
$(brew --prefix postgresql)/homebrew.mxcl.postgresql.plist
, смотрите для пути, следующего за-D
(это/usr/local/var/postgres
на моем).На Ubuntu \ Debian попробуйте
pg_lsclusters
команду.На моей машине:
источник
Если вы не можете войти (например, забыли свой пароль), но служба работает, так как MacOS X - это posix-вариант, вы всегда можете проверить
ps
, передается ли он в качестве аргумента:На linux box с двумя запущенными экземплярами postgres:
источник
Откройте postgresql.conf, перейдите к строке:
это твой ответ.
источник
postgresql.conf
find / -iname "postgresql.conf" 2>/dev/null
чтобы узнатьpostgresql.conf
неdata_directory
определил. На него ссылаются только в комментарии:#data_directory = 'ConfigDir' # use data in another directory
Современные версии настольного клиента PostgreSQL для OSX имеют удобный диалог «Настройки сервера», который позволит вам не просто перечислить каталог данных, но и открыть его напрямую.
Очень полезно, если вы столкнулись со случайным падением компьютера, которое оставляет файл блокировки.
источник
В OS X 10.8 и 10.9 (не 10.10) с установленным приложением сервера в окне терминала введите
На OS X 10.9 Mavericks это вывод, который я получаю из этого, который включает каталог данных.
Я только что попробовал это в Yosemite (OS X 10.10), и postgres больше не указан как сервис под serveradmin (хотя postgres установлен).
не перечисляет postgres
источник
В Windows Server 2012 команда
pg_config
по какой-то безумной причине не показала каталог данных. Но я нашел это, посмотрев на файлC:\Program Files\PostgreSQL\9.4\pg_env.bat
, который содержал эту строку:Это был ответ, который мне был нужен.
источник
Как насчет использования стандартной утилиты pg_config, такой как
pg_config --bindir
One, также можно получить параметры конфигурации, используемые для компиляции PostgreSQL, и проанализировать их с помощьюpg_config --configure
источник
--bindir
показывает расположение исполняемых файлов, а не каталог данных.--configure
все в порядке, хотя нужно немного разобрать вывод.Как указывалось, можно также использовать
ps
для захвата местоположения данных, таких как:ps -e |egrep postgres|egrep -E '[[:blank:]]+\-D'| perl -pe 's/^.*[[:blank:]]+-D[[:blank:]]+(\S+).*?$/$1/'
,Это будет работать большую часть времени. Он будет возвращать что-то вроде
/usr/local/pgsql/data
или где-либо еще это было указано в параметрах PostgreSQL при запуске.источник
Основываясь на ответе @Matthew Mark Miller, в macOS 10.14 с использованием Postgres 11 он находится по адресу:
источник
Обобщая из 2 лучших ответов:
Чтобы отобразить каталог данных непосредственно в командной строке:
Чтобы также увидеть все другие определенные пути к файлам и каталогам:
Образец вывода:
(В Windows замените
LIKE '/%'
на,LIKE '%/%'
потому что путь начинается с буквы диска)источник