Postgres не знает где найти файл конфигурации сервера
В дополнение к вышеупомянутому postgresql.conf , Postgres Pro обрабатывает два редактируемых вручную файла конфигурации, в которых настраивается аутентификация клиентов (их использование рассматривается в Главе 19). По умолчанию все три файла конфигурации размещаются в каталоге данных кластера БД. Параметры, описанные в этом разделе, позволяют разместить их и в любом другом месте. (Это позволяет упростить администрирование, в частности, выполнять резервное копирование этих файлов обычно проще, когда они хранятся отдельно.)
Задаёт каталог, в котором хранятся данные. Этот параметр можно задать только при запуске сервера. config_file ( string )
Задаёт основной файл конфигурации сервера (его стандартное имя — postgresql.conf ). Этот параметр можно задать только в командной строке postgres . hba_file ( string )
Задаёт файл конфигурации для аутентификации по сетевым узлам (его стандартное имя — pg_hba.conf ). Этот параметр можно задать только при старте сервера. ident_file ( string )
Задаёт файл конфигурации для сопоставлений имён пользователей (его стандартное имя — pg_ident.conf ). Этот параметр можно задать только при запуске сервера. См. также Раздел 19.2. external_pid_file ( string )
Задаёт имя дополнительного файла с идентификатором процесса (PID), который будет создавать сервер для использования программами администрирования. Этот параметр можно задать только при запуске сервера.
При стандартной установке ни один из этих параметров не задаётся явно. Вместо них задаётся только каталог данных, аргументом командной строки -D или переменной окружения PGDATA , и все необходимые файлы конфигурации загружаются из этого каталога.
Если вы хотите разместить файлы конфигурации не в каталоге данных, то аргумент командной строки postgres -D или переменная окружения PGDATA должны указывать на каталог, содержащий файлы конфигурации, а в postgresql.conf (или в командной строке) должен задаваться параметр data_directory , указывающий, где фактически находятся данные. Учтите, что data_directory переопределяет путь, задаваемый в -D или PGDATA как путь каталога данных, но не расположение файлов конфигурации.
При желании вы можете задать имена и пути файлов конфигурации по отдельности, воспользовавшись параметрами config_file , hba_file и/или ident_file . Параметр config_file можно задать только в командной строке postgres , тогда как остальные можно задать и в основном файле конфигурации. Если явно заданы все три эти параметра плюс data_directory , то задавать -D или PGDATA не нужно.
Во всех этих параметрах относительный путь должен задаваться от каталога, в котором запускается postgres .
I have recently installed PostgreSQL on Ubuntu with the EnterpriseDB package. I can connect to the database locally, but I can't configure it because I can't find config files. I searched through entire hard drive and found only samples like pg_hba.conf.sample
Where are the PostgreSQL .conf files?
In case you are looking for sql's start-up file, it is called .psqlrc and you can open it with a text editor in your terminal.
Где мои 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.конф и т. д. являются.
для Debian 9 я нашел свой, используя Franke Heikens answer - $ /etc/postgresql/9.6/main / postgresql.conf
В дополнение к вышеупомянутому postgresql.conf , Postgres Pro обрабатывает два редактируемых вручную файла конфигурации, в которых настраивается аутентификация клиентов (их использование рассматривается в Главе 19). По умолчанию все три файла конфигурации размещаются в каталоге данных кластера БД. Параметры, описанные в этом разделе, позволяют разместить их и в любом другом месте. (Это позволяет упростить администрирование, в частности, выполнять резервное копирование этих файлов обычно проще, когда они хранятся отдельно.)
Задаёт каталог, в котором хранятся данные. Этот параметр можно задать только при запуске сервера. config_file ( string )
Задаёт основной файл конфигурации сервера (его стандартное имя — postgresql.conf ). Этот параметр можно задать только в командной строке postgres . hba_file ( string )
Задаёт файл конфигурации для аутентификации по сетевым узлам (его стандартное имя — pg_hba.conf ). Этот параметр можно задать только при старте сервера. ident_file ( string )
Задаёт файл конфигурации для сопоставлений имён пользователей (его стандартное имя — pg_ident.conf ). Этот параметр можно задать только при запуске сервера. См. также Раздел 19.2. external_pid_file ( string )
Задаёт имя дополнительного файла с идентификатором процесса (PID), который будет создавать сервер для использования программами администрирования. Этот параметр можно задать только при запуске сервера.
При стандартной установке ни один из этих параметров не задаётся явно. Вместо них задаётся только каталог данных, аргументом командной строки -D или переменной окружения PGDATA , и все необходимые файлы конфигурации загружаются из этого каталога.
Если вы хотите разместить файлы конфигурации не в каталоге данных, то аргумент командной строки postgres -D или переменная окружения PGDATA должны указывать на каталог, содержащий файлы конфигурации, а в postgresql.conf (или в командной строке) должен задаваться параметр data_directory , указывающий, где фактически находятся данные. Учтите, что data_directory переопределяет путь, задаваемый в -D или PGDATA как путь каталога данных, но не расположение файлов конфигурации.
При желании вы можете задать имена и пути файлов конфигурации по отдельности, воспользовавшись параметрами config_file , hba_file и/или ident_file . Параметр config_file можно задать только в командной строке postgres , тогда как остальные можно задать и в основном файле конфигурации. Если явно заданы все три эти параметра плюс data_directory , то задавать -D или PGDATA не нужно.
Во всех этих параметрах относительный путь должен задаваться от каталога, в котором запускается postgres .
Where are my postgres *.conf files?
Query the database with the sql query:
The reason you may have trouble finding postgresql.conf is because it is owned by postgres, not root.
Here is where mine is on Fedora 17:
Notice it is owned by postgres:
It has permission 600 which explains why you have a hard time finding it with a file search. The location of postgresql.conf will be different depending on what operating system you are using.
Here is the contents of mine:
To get the location of the pg_hba.conf file, you can also query the database like
You should get something like
If you have just installed it, it is possible that locate doesn't help. In that case, the service should be running and you can run
to see where the postgresql-master is loading the config files from.
On Mac (Postgres installed using brew) :
Print pg_hba.conf file location:
Print postgresql.conf file location:
For CentOS 6 and 7 and postgresql 9.2 (and below, I suppose, possibly Fedora and Redhat as well):
For CentOS 6 and 7 postgresql 9.3 or 9.4 (and above, I suppose):
For Ubuntu 14 and postgresql 9.3:
The answer may be that you have not initialized the database yet. After installing postgres, but before initializing the database, the postgres*.sql files will be absent. After initializing the database the postgres*.sql files will appear. (Centos 6, Postgres 9.3 demonstrated here)
You can find other conf files by the following command:
Note: See usage using man:
30-07-2019
In Windows 10 pro:
As I don't have access to postgres account (so can't run SHOW config_file ) and my postgres is installed on Windows, none of the answers helped me, so I'm sharing my file location for future Windows readers:
In most cases: under $PGDATA , which is normally /var/lib/postgresql/data or something similar (at least it's the default path if you use Docker images).
For Debian 9 I found mine using Franke Heikens answer - $ /etc/postgresql/9.6/main/postgresql.conf
I like this thread because it documents the default locations for various postgresql.conf files on various architectures.
However, I've also gotten in trouble by relying on those defaults on installations where they have specified alternate locations. One way to find out where a particular config file is by querying the database directly:
select * from pg_settings where name='config_file'
Drop the where clause to see all the settings, which can also be illuminating because it shows where data directories, pg_hba.conf, etc. are.
postgres не знает, где найти файл конфигурации сервера.
Вы должны указать параметр вызова --config-file или -D или установить Переменная окружения PGDATA.
Итак, я пытаюсь установить свой файл конфигурации:
И я получаю следующую ошибку:
postgres не может получить доступ к файлу конфигурации сервера "/usr/local/var/postgres/postgresql.conf": в доступе отказано
Хм, хорошо. Затем я пытаюсь выполнить то же действие в качестве администратора:
И я получаю следующую ошибку:
"корневое" выполнение сервера PostgreSQL запрещено.
Сервер должен быть запущен от имени непривилегированного пользователя, чтобы предотвратить возможная компрометация системы безопасности. См. Документацию для получения дополнительной информации информация о том, как правильно запустить сервер.
28 Answers 28
Or ask your database:
or, if logged in as the ubuntu user:
And if you don't know, you can access the command line utility via $YOUR_PG_INSTALL_DIR/pgsql/bin/psql
Ubuntu 13.04 installed using software centre :
The location for mine is:
I am not sure if locate can be relied upon because the file and also its directory may be accessible exclusively by postgres or the products user only.
@A-B-B ". accessible exclusively by root, postgres, or the products user only." Run it as root and it's reliable.
I would not trust the output of locate. Imagine these steps: Postgres version x is installed, updatedb reads the location of all files, postgres gets upgarded to version x+1. Now the cached data of locate is too old . This is not reliable.
Not to mention that there could be all sorts of postgresql.conf files sticking around in example directories, e-book code samples, github downloads, etc. This is really something to try after you've exhausted other possibilities.
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, в основном с помощью памяти и назначений ЦП.
Есть манифест (postgres.yml):
Вы можете подать заявку с
Перейдите в свой модуль и проверьте применяемые настройки:
Пожалуйста, попробуйте себя, подтвердите и поделитесь .
Для тех, кто пытается запустить настраиваемую команду с использованием официального образа докера, используйте следующую команду. docker-entrypoint.sh обрабатывает переключение пользователя и обработку других разрешений.
Я недавно переустановил postgresql 8.3 на моем Ubuntu 8.04 после обновления. Использован пакет файле EnterpriseDB. Я могу подключиться к базе данных локально, я вижу system DB postgres, но я не могу ее настроить, потому что не могу найти файлы конфигурации. Поиск по всему жесткому диску и нашел только образцы, такие как pg_hba.conf.sample
где postgres *.conf файлов?
или спросите свою базу данных:
Ubuntu 13.04 установлено с помощью программного центра:
место для моего:
Читайте также: