Установка Postgresql 9.5 — владелец конфигурации (postgres: 105) и владелец данных (ubuntu: 1000) не совпадают, и владелец конфигурации не является root

#postgresql #ubuntu #ubuntu-14.04 #postgresql-9.5

#postgresql #ubuntu #ubuntu-14.04 #postgresql-9.5

Вопрос:

При установке postgres9.5 на ubuntu 14.04 следующая команда останавливается с ошибкой: $sudo apt-get install postgresql-9.5 pgadmin3

Вот сообщение об ошибке:

  Preparing to unpack .../postgresql-9.5_9.5.4-1.pgdg14.04 2_amd64.deb ...
 * Stopping PostgreSQL 9.5 database server                                       * Error: Config owner (postgres:105) and data owner (ubuntu:1000) do not match, and config owner is not root
                                                                         [fail]
invoke-rc.d: initscript postgresql, action "stop" failed.
dpkg: warning: subprocess old pre-removal script returned error exit status 1
dpkg: trying script from the new package instead ...
 * Stopping PostgreSQL 9.5 database server                                       * Error: Config owner (postgres:105) and data owner (ubuntu:1000) do not match, and config owner is not root
                                                                         [fail]
invoke-rc.d: initscript postgresql, action "stop" failed.
dpkg: error processing archive /var/cache/apt/archives/postgresql-9.5_9.5.4-1.pgdg14.04 2_amd64.deb (--unpack):
 subprocess new pre-removal script returned error exit status 1
Errors were encountered while processing:
 /var/cache/apt/archives/postgresql-9.5_9.5.4-1.pgdg14.04 2_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
  

Что вызывает ошибку?

Комментарии:

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

2. sudo chown postgres:postgres <path_to_postgresql.conf>

3. Sri , проблема та же после chown.

4. Kamil G , установлена предыдущая копия. Я хочу переустановить, потому что при запуске postgresql возникает та же ошибка. Postgres был установлен путем добавления pg 9.5 в список исходных текстов. apt-get remove возвращает, что postgres установлен.

Ответ №1:

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

 systemd[1]: Starting PostgreSQL Cluster 10-main...                                                                                         
postgresql@10-main[3231]: Error: Config owner (postgres:111) and data owner (root:0) do not match, and config owner is not root            
systemd[1]: postgresql@10-main.service: Can't open PID file /var/run/postgresql/10-main.pid (yet?) after start: No such file or directory  
systemd[1]: postgresql@10-main.service: Failed with result 'protocol'.                                                                     
systemd[1]: Failed to start PostgreSQL Cluster 10-main.  
  

Чтобы решить эту проблему, я убедился, что данные также принадлежат специальному пользователю postgres , например :

 cd /var/lib/
chown -R postgres postgresql/
  

После этого (как root) запуск основной службы работал корректно :

 start postgresql@10-main
root@myhost:/var/lib/postgresql# systemctl status postgresql@10-main.service
● postgresql@10-main.service - PostgreSQL Cluster 10-main
   Loaded: loaded (/lib/systemd/system/postgresql@.service; indirect; vendor preset: enabled)
   Active: active (running) since Tue 2018-05-15 07:34:30 UTC; 4s ago
  Process: 3333 ExecStart=/usr/bin/pg_ctlcluster --skip-systemctl-redirect 10-main start (code=exited, status=0/SUCCESS)
 Main PID: 3347 (postgres)
    Tasks: 7 (limit: 1112)
   CGroup: /system.slice/system-postgresql.slice/postgresql@10-main.service
           ├─3347 /usr/lib/postgresql/10/bin/postgres -D /var/lib/postgresql/10/main -c config_file=/etc/postgresql/10/main/postgresql.conf
           ├─3355 postgres: 10/main: checkpointer process
           ├─3356 postgres: 10/main: writer process
           ├─3357 postgres: 10/main: wal writer process
           ├─3358 postgres: 10/main: autovacuum launcher process
           ├─3359 postgres: 10/main: stats collector process
           └─3360 postgres: 10/main: bgworker: logical replication launcher
                                        
  

Ответ №2:

Проблема, которую я нахожу, заключается в том, что права на /var были случайно изменены на некорневые. После chown -R включения /var все postgres начинает работать нормально.