Postgres не знает где найти файл конфигурации сервера

Обновлено: 29.06.2024

Чтобы увидеть, где находится каталог данных, используйте этот запрос.

Чтобы увидеть все параметры времени выполнения, используйте

Вы можете создавать табличные пространства для хранения объектов базы данных в других частях файловой системы. Чтобы увидеть табличные пространства, которые могут отсутствовать в этом каталоге данных, используйте этот запрос.

show data_directory; Команда указывает на точное местоположение данных. Поиск в определенной папке является болезненным, так как кто-то другой мог установить ее для вас, и теперь вы не знаете конфигурацию, поэтому следующий sql поможет сэкономить время. :) Спасибо, Майк. Он говорит , что «должны быть суперпользователем , чтобы изучить каталог данных» :( Если вы не администратор, вам все равно не нужно об этом знать. Кстати, если кто-то ищет местоположение базы данных для Postgres.app на Mac, как я, то по умолчанию оно находится в

/ Library / Application Support / Postgres [ver] / var.

Чтобы выполнить запрос, используйте PGAdmin III и значок «выполнить запрос» в строке меню.

На Windows7 все базы данных называют числом в файле с именем pg_database под C:\Program Files (x86)\PostgreSQL\8.2\data\global . Затем вы должны найти имя папки по этому номеру в C:\Program Files (x86)\PostgreSQL\8.2\data\base . Это содержание базы данных.

Не отвечайте определенным образом для ОС, если в вопросе явно не указана ОС. Почему нет? Если вы не упомянете ОС и просто скажете «это работает», любой, кто попробует это на другой ОС, будет сбит с толку. Это актуально. РЕДАКТИРОВАТЬ: О, вы, вероятно, имеете в виду "вообще не давать конкретного ответа ОС". Я думаю, это имеет смысл, я не знаю. @ Давид, вопрос был закрыт, предположительно, потому что не было указано, какая ОС. (Если бы он указывал ОС, он был бы закрыт из-за того, что он был слишком конкретным.) Ваш ответ был полезным и информативным - просто игнорируйте скептиков и падальщиков, пока им не удастся окончательно уничтожить SO. Ненавистники будут ненавидеть, и все такое. @ SamGoody было бы что-то вроде того, что вы говорили, если бы этот ответ был действительно правильным. (Это не совсем неверно, поскольку папка может быть в Windows, но это определенно не дано). Является ли это случаем или нет, можно легко узнать, следуя уже даному ответу. @senthilkumari У меня есть postgresql 11 и windows 10. Как вы упомянули, я пытался просмотреть базу данных pg_database внутри глобальной папки, но не смог ее увидеть. Я мог видеть кучу _vms, _fsm, config_exec_params, pg_control, pg_filenode.map, pg_internal.init. Для Windows 10, какой файл с именем следует искать. Это другое?

Откройте pgAdmin и перейдите в Свойства для конкретной базы данных. Найдите OID и откройте каталог

Там должны быть ваши файлы БД.

Как указано в разделе « Расположение базы данных PostgreSQL по умолчанию в Linux », в Linux вы можете узнать, используя следующую команду:

Под моей установкой Linux это здесь: /var/lib/postgresql/8.x/

Вы можете изменить это с initdb -D "c:/mydb/"

Зависит от дистрибутива - для Fedora 20 он ниже /var/lib/pgsql/data . Лучше узнать, используя ps auxw|grep postgres|grep -- -D .

Расположение определенных таблиц / индексов может быть скорректировано с помощью TABLESPACE:

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

Могу поспорить, что вы задаете этот вопрос, потому что вы попробовали pg_ctl start и получили следующую ошибку:

pg_ctl: каталог базы данных не указан и переменная окружения PGDATA не установлена

Другими словами, вы ищете в каталоге на сайте после того, как -D в вашей pg_ctl start команде.

В этом случае каталог, который вы ищете, содержит эти файлы.

Вы можете найти его, найдя любой из файлов и каталогов выше, используя поиск, предоставляемый вашей ОС.

Например, в моем случае ( установка HomeBrew на Mac OS X ) эти файлы находятся в /usr/local/var/postgres . Для запуска сервера я набираю:

Если вы используете доморощенный, более простой способ найти эти данные просто brew info postgres Вы правы по поводу причины, по которой я ищу папку базы данных. Но дело в том, что я не могу найти ни один из вышеперечисленных файлов с locate <filename> Нашел их . Пришлось использовать sudo locate <filename>

Postgres хранит данные в файлах в своем каталоге данных. Выполните следующие шаги, чтобы перейти к базе данных и ее файлам:

База данных, соответствующая файлу таблицы postgresql, является каталогом. Расположение всего каталога данных можно получить, запустив SHOW data_directory . в UNIX-подобной ОС (например, Mac) /Library/PostgreSQL/9.4/data Перейдите в базовую папку в каталоге данных, в котором есть все папки базы данных: /Library/PostgreSQL/9.4/data/base

Найдите имя папки базы данных, выполнив (Дает целое число. Это имя папки базы данных):

Найдите имя файла таблицы, выполнив (Дает целое число. Это имя файла):

Это бинарный файл. Детали файла, такие как размер и время создания, можно получить как обычно. Для получения дополнительной информации прочитайте эту тему

На Mac: /Library/PostgreSQL/9.0/data/base

Каталог не может быть введен, но вы можете посмотреть содержимое через: sudo du -hc data

postgres не знает, где найти файл конфигурации сервера.
Вы должны указать параметр вызова --config-file или -D или установить Переменная окружения PGDATA.

Итак, я пытаюсь установить свой файл конфигурации:

И я получаю следующую ошибку:

postgres не может получить доступ к файлу конфигурации сервера "/usr/local/var/postgres/postgresql.conf": в доступе отказано

Хм, хорошо. Затем я пытаюсь выполнить то же действие в качестве администратора:

И я получаю следующую ошибку:

"корневое" выполнение сервера PostgreSQL запрещено.
Сервер должен быть запущен от имени непривилегированного пользователя, чтобы предотвратить возможная компрометация системы безопасности. См. Документацию для получения дополнительной информации информация о том, как правильно запустить сервер.

3 ответа

Ваша команда не делает того, что вы думаете. Чтобы запустить что-либо как системный пользователь postgres :

Чтобы запустить команду (также называемую postgres !):

Ваша команда делает обратное:

Если вы собираетесь выполнить несколько команд как системный пользователь postgres , измените пользователя с помощью:

. и exit , когда вы закончите.

postgres не может получить доступ к файлу конфигурации сервера "/usr/local/var/postgres/postgresql.conf": в доступе отказано /usr/local/var/postgres/postgresql.conf

  • Обратите внимание на инструкцию в руководстве Postgres.
  • Также обратите внимание на оболочку pg_ctl - или pg_ctlcluster в дистрибутивах на основе Debian.
  • И знайте разницу между su и sudo .

Ответ Мутукумара - лучший !! После целого дня поиска более простого способа изменения развертывания Alpine Postgres в Kubernetes я нашел этот простой ответ.

Вот мое полное описание. Наслаждайся этим !!

Сначала мне нужно создать / определить ConfigMap с правильными значениями. Сохраните в файле custom-postgresql.conf:

Создайте конфигурацию / карту:

Пожалуйста, позаботьтесь о том, чтобы значения в пользовательских настройках определялись в соответствии с ресурсами Pod, в основном с помощью памяти и назначений ЦП.

Я недавно переустановил postgresql 8.3 на моем Ubuntu 8.04 после обновления. Использован пакет файле EnterpriseDB. Я могу подключиться к базе данных локально, я вижу system DB postgres, но я не могу ее настроить, потому что не могу найти файлы конфигурации. Поиск по всему жесткому диску и нашел только образцы, такие как pg_hba.conf.sample

где postgres *.conf файлов?

или спросите свою базу данных:

Ubuntu 13.04 установлено с помощью программного центра:

место для моего:

Где мои postgres *.файлы конф?

запрос базы данных с sql-запросом:

причина, по которой вы можете иметь проблемы с поиском postgresql.conf потому что он принадлежит postgres, а не root.

вот где мой находится на Fedora 17:

обратите внимание, что он принадлежит postgres:

он имеет разрешение 600, что объясняет, почему вам трудно найти его с помощью поиска файлов. Расположение postgresql.conf будет различным в зависимости от того, какую операционную систему вы используете.

вот содержание моего:

чтобы получить местоположение pg_hba.conf файл, вы также можете запросить базу данных, как

вы должны получить что-то вроде

на Mac (Postgres установлен с помощью brew):

/ usr / local/Cellar/postgresql/9.3.3>bin /postgres-D/usr/local/var/postgres/

для CentOS 6 и 7 и postgresql 9.2 (и ниже, я полагаю, возможно, Fedora и Redhat):

для CentOS 6 и 7 postgresql 9.3 или 9.4 (и выше, я полагаю):

для Ubuntu 14 и postgresql 9.3:

ответ может заключаться в том, что вы еще не инициализировали базу данных. После установки postgres, но перед инициализацией базы данных, postgres*.файлы sql будут отсутствовать. После инициализации базы данных postgres*.появятся файлы sql. (Centos 6, Postgres 9.3 продемонстрированы здесь)

в большинстве случаев: под $PGDATA обычно /var/lib/postgresql/data или что-то подобное (по крайней мере, это путь по умолчанию, если вы используете настройки изображения).

в CentOS 7 с PostgreSQL 9.4 он находится в следующем каталоге:

Я вижу это, когда я войти в систему как root.

вы можете найти другие файлы conf с помощью следующей команды:

Примечание: см. использование с помощью man:

Если вы следовали Белой книге, выпущенной Amazon для установки Postgresql на AWS, которая включала создание каталога /data/ в файловой системе, установленной на отдельном томе EBS, то ваш postgresql.файл conf находится в /data/

из чего я заключаю, что файл создается во время инициализации каталога данных и находится в корне каталога данных. Для установки по умолчанию это выглядит как /var/lib/pgsql / data, но не если вы переместили data dir

мне нравится этот поток, потому что он документирует местоположения по умолчанию для различных postgresql.conf файлы на различных архитектурах.

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

select * from pg_settings where name='config_file'

падение where предложение, чтобы увидеть все настройки, которые также могут быть подсветка, потому что она показывает, где каталоги данных, pg_hba.конф и т. д. являются.

Я пытаюсь настроить postgreSQL в качестве своей локальной базы данных разработки.

когда я выполняю

Я получаю следующую ошибку:

В моем Gemfile у меня есть pg в списке gem.

Когда я выполняю

Я получаю следующую ошибку:

Мой database.yml выглядит следующим образом:

2 ответа

Я использую mac OS X 10.5.8. Я установил PostgreSQL 9.1 (используя драйвер Mac dmg), чтобы построить базу данных с python (используя sqlalchemy и psycopg2). Когда я впервые попытался подключиться к PostgreSQL через sqlalchemy, я не смог найти комбинацию username:password, которая позволила бы мне.

итак, это своего рода косвенное решение, но я просто запустил brew uninstall postgresql , а затем установил приложение PostgreSQL, которое автоматически запускается на правом порту 5432.

У меня уже была такая же проблема раньше, и я исправил ее, сделав это

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

Когда я пытаюсь запустить postgresql, я получаю ошибку: postgres postgres не знает, где найти файл конфигурации сервера. Вы должны указать параметр вызова --config-file или -D или установить PGDATA.

Я установил PostgreSQL на свой Mac OS Lion и работаю над приложением rails. Я использую RVM, чтобы держать все отдельно от других моих приложений Rails. По какой-то причине, когда я пытаюсь.

Я использую mac OS X 10.5.8. Я установил PostgreSQL 9.1 (используя драйвер Mac dmg), чтобы построить базу данных с python (используя sqlalchemy и psycopg2). Когда я впервые попытался подключиться к.

Я пытаюсь запустить PostgreSQL для RoR на своем новом mac (я новичок). Я следовал руководству по установке, однако не могу заставить его работать должным образом. Я нашел похожие вопросы, но они не.

Я установил PostgreSQL, но когда я выполняю команду postgres в windows CMD Это дает следующую ошибку: postgres does not know where to find the server configuration file. You must specify the.

Я нахожусь на CentOS 7 и пытаюсь пройти через ошибку PG::ConnectionBad: FATAL: Peer authentication failed for user . Итак, я уже понял, что должен изменить pg_hba.conf (peer на md5), и я это.

Я не включал параллельные конфигурации в postgres. Однако во время отладки было обнаружено, что параллельные конфигурации были включены. На гугле нашел, как установить параллельные конфигурации.

Я пытаюсь переопределить один элемент в конфигурации Postgres официального изображения Docker Postgres . А именно, я хочу переопределить свойство log_statement и установить его в all . Попробовал.

Читайте также: