Как найти каталог данных PostgreSQL?

Я забыл, как я в прошлый раз начал postgres (это было несколько месяцев назад), и я не помню, где находится каталог данных. Кажется, что команда postgres требует расположения. Я нахожусь на MacOsX, если это помогает.

/usr /local /postgres не существует.

Используя приведенные ниже ответы, я обнаружил, что он был здесь

/USR /местные /вар /Postgres
91 голос | спросил randomguy 20 FebruaryEurope/MoscowbSun, 20 Feb 2011 15:10:34 +0300000000pmSun, 20 Feb 2011 15:10:34 +030011 2011, 15:10:34

11 ответов


116

Если вы можете подключиться к базе данных с доступом суперпользователя, то

SHOW data_directory;

- самый короткий путь.

Если сервер не запущен и вы забыли, где находится каталог данных, вам действительно нужно угадать. Контекст конкретной операционной системы или история оболочки могут содержать подсказки.

ответил Peter Eisentraut 20 FebruaryEurope/MoscowbSun, 20 Feb 2011 18:32:35 +0300000000pmSun, 20 Feb 2011 18:32:35 +030011 2011, 18:32:35
30

Вы также можете запросить его

выберите параметр из pg_settings, где name = 'data_directory';
ответил DrColossos 20 FebruaryEurope/MoscowbSun, 20 Feb 2011 15:19:48 +0300000000pmSun, 20 Feb 2011 15:19:48 +030011 2011, 15:19:48
15

pg_config показывает много информации, включая каталог данных:

CONFIGURE = '--disable-debug' '--prefix = /usr /local /Cellar /postgresql /9.3.2'
            '--datadir = /USR /местные /Погреб /PostgreSQL /9.3.2 /доля /PostgreSQL'
            '--docdir = /USR /местные /Погреб /PostgreSQL /9.3.2 /доля /DOC /PostgreSQL'
            '--enable-thread-safety' '--with-bonjour' '--with-gssapi' '--with-krb5'
            '--with-ldap' '--with-openssl' '--with-pam' '--with-libxml' '--with-libxslt'
            '--with-ossp-uuid' '--with-python' '--with-perl' '--with-tcl' 'CC = clang'
            'CFLAGS = -I /USR /местные /Подвал /OSSP-UUID /1.6.2 /включают'
            'LDFLAGS = -L /usr /local /Cellar /ossp-uuid /1.6.2 /lib' 'LIBS = -luuid'

Это может быть особенность, характерная для варки; без пива я не знаю, что он показывает.

ответил Dave Newton 25 Jpm1000000pmSat, 25 Jan 2014 17:48:39 +040014 2014, 17:48:39
13

В Ubuntu \ Debian попробуйте выполнить команду pg_lsclusters.

На моей машине:

pg_lsclusters
Версия Cluster Port Status Owner Каталог данных Файл журнала
8.4 main 5432 online postgres /home /adam /db /main /data /home /adam /db /main /log
ответил Adam Matan 20 FebruaryEurope/MoscowbSun, 20 Feb 2011 18:09:32 +0300000000pmSun, 20 Feb 2011 18:09:32 +030011 2011, 18:09:32
7

Если вы не можете войти в систему (например, забыли свой пароль), но служба запущена, так как MacOS X является переменным posix, вы всегда можете проверить ps, чтобы узнать, передается ли он в в качестве аргумента:

В окне Linux с двумя экземплярами postgres:

-bash-3.2 $ ps ax | grep postgres | grep -v postgres:
 4698? S 9:59 /opt/PostgreSQL/8.4/bin/postgres -D /opt/PostgreSQL/8.4/data
 6115? S 8:16 /opt/PostgreSQL/8.4/bin/postgres -D /opt/PostgreSQL/8.4/data_sums
30694 pts /9 S + 0:00 grep postgres
ответил Joe 21 FebruaryEurope/MoscowbMon, 21 Feb 2011 06:12:16 +0300000000amMon, 21 Feb 2011 06:12:16 +030011 2011, 06:12:16
2

Откройте postgresql.conf, перейдите к строке:

data_directory = '/вар /Библиотека /PostgreSQL /главная /'

- ваш ответ.

ответил Ronaldinho 26 32014vEurope/Moscow11bEurope/MoscowWed, 26 Nov 2014 08:46:29 +0300 2014, 08:46:29
2

Современные версии настольного клиента PostgreSQL для OSX имеют удобный диалог «Настройки сервера», который позволит вам не просто перечислить каталог данных, но и открыть его напрямую.

Очень полезно, если вы столкнулись с случайным сбоем машины, который оставляет за собой файл блокировки.

 введите описание изображения здесь>> </a> </p></div>
					 
						<div class=

ответил Matthew Mark Miller 16 Maypm17 2017, 22:45:23
1

В OS X 10.8 и 10.9 (не 10.10) с установленным серверным приложением в окне терминала введите

Настройки sudo serveradmin postgres

В OS X 10.9 Mavericks это результат, который я получаю от него, включая каталог данных.

postgres: log_connections = "on"
postgres: unix_socket_directory = "/private /var /pgsql_socket"
postgres: listen_addresses = "127.0.0.1, :: 1"
postgres: unix_socket_group = "_postgres"
postgres: log_statement = "ddl"
postgres: log_line_prefix = "% t"
postgres: unix_socket_permissions = "0770"
postgres: log_lock_waits = "on"
postgres: logging_collector = "on"
postgres: log_filename = "PostgreSQL.log"
postgres: dataDir = "/Библиотека /Сервер /PostgreSQL /Данные"
postgres: log_directory = "/Library /Logs /PostgreSQL"

Я просто попробовал это в Yosemite (OS X 10.10), и postgres больше не отображается как служба в serveradmin (хотя postgres установлен).

Список sudo serveradmin

не перечисляет postgres

ответил Jason S 23 72014vEurope/Moscow11bEurope/MoscowSun, 23 Nov 2014 13:45:53 +0300 2014, 13:45:53
1

В Windows Server 2012 команда pg_config не обнаружила каталог данных по какой-то сумасшедшей причине. Но я нашел его, посмотрев файл C: \ Program Files \ PostgreSQL \ 9.4 \ pg_env.bat, который содержал эту строку:

@SET PGDATA = E: \ POSTGRESQL

Это был ответ, который мне нужен.

ответил user3618269 14 Maypm15 2015, 16:52:31
0

Как насчет использования стандартной утилиты pg_config, такой как pg_config --bindir. Также можно получить параметры конфигурации, используемые для компиляции PostgreSQL, и проанализировать их с помощью pg_config --configure

ответил Jacques 28 +03002017-10-28T14:58:39+03:00312017bEurope/MoscowSat, 28 Oct 2017 14:58:39 +0300 2017, 14:58:39
0

Как указано, можно также использовать ps для захвата местоположения данных, например:

ps -e | egrep postgres | egrep -E '[[: blank:]] + \ - D' | perl -pe 's /^.* [[: blank:]] + - D [[: blank:]] + (\ S +). *? $ /$ 1 /'.

Это будет работать большую часть времени. Он будет возвращать что-то вроде /usr /local /pgsql /data или везде, где он был указан в параметрах PostgreSQL при запуске.

ответил Jacques 30 +03002017-10-30T02:04:56+03:00312017bEurope/MoscowMon, 30 Oct 2017 02:04:56 +0300 2017, 02:04:56

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132