Как удалить определенные версии Postgres?

11

На Ubuntu 14.04 я сделал это, чтобы получить последние postgres:

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get upgrade

Затем я установил версию 9.4:

sudo apt-get install postgresql-9.4

Однако, похоже, у меня сейчас три версии:

sudo service postgresql stop

 * Stopping PostgreSQL 9.3 database server  [ OK ]
 * Stopping PostgreSQL 9.4 database server  [ OK ]
 * Stopping PostgreSQL 9.5 database server  [ OK ]

Как мне сохранить только 9.4 и удалить остальные? Спасибо

ОБНОВИТЬ:

Как предложено в комментариях, я удалил 9.3 и 9.5.

Но когда я делаю это:

sudo service postgresql status
9.3/main (port 5432): down
9.4/main (port 5434): online
9.5/main (port 5433): down

Пока все хорошо, но когда я переключаюсь на postgres:

sudo su postgres

и сделать psql, я получаю ошибку:

psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
Houman
источник
Как вы установили 9.3 и 9.5?
Rinzwind
9.3 была установлена ​​по умолчанию в 14.04. 9,5 был установлен в тот момент, когда я добавил PPI выше. Он только что установил последний сервер.
Хоуман,
Postgres не является частью Ubuntu по умолчанию ;-) Но тогда я бы предположил, sudo apt-get remove postgresql-9.3что удалит 9.3 (после выключения сервера 9.3)
Rinzwind
Спасибо, что следовал вашему совету, пожалуйста, смотрите обновленный вопрос.
Хоуман
Я нашел это. Решение состоит в том, чтобы очистить все, как сказано здесь: askubuntu.com/a/334730/58150
Houman

Ответы:

7

Различные версии PostgreSQL находятся в пакетах postgresql-9. *.

  1. Поэтому вы должны удалить два пакета:

    sudo apt-get purge postgresql-9.3 postgresql-9.5
    
  2. Затем вы должны удалить ненужные конфигурационные папки:

    rm -r /etc/postgresql/9.3/ /etc/postgresql/9.5
    
  3. И из папки / var / lib /, если у вас есть:

    /var/lib/postgresql/*
    

Я надеюсь, что это поможет вам.

Correcter
источник
1

Добавление ответа очень поздно, но может помочь людям здесь.

Краткий ответ: Ошибка указывает, что postgres настроен на неправильном (не по умолчанию) порту. Используйте правильный порт

Длинный ответ: Когда вы установили несколько версий Postgresql, все они начали запускать кластеры postgres на разных портах. В вашем выходе следующие Postgres версия работает: 9.3 --> 5432, 9.4 -->5434, 9.5 --> 5433.

sudo service postgresql status
9.3/main (port 5432): down
9.4/main (port 5434): online
9.5/main (port 5433): down

Вы можете удалить другие версии, используя, sudo apt-get purge postgresql-9.xгде 9.xваша версия, однако в вашем случае версия (9.4), которая присутствовала в вашей системе, настроена для работы на порту 5434. Таким образом, ошибка Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?прекрасно указывает на то, что psql по умолчанию пытается подключиться к порту, для 5432которого нет больше не имеет каких-либо postgres прилагается.

Два решения здесь :

  • Либо используйте psql -p 5434опцию ie port (-p / - port) в команде psql.
  • Или настройте portзначение конфигурации вашего сервера postgres, /etc/postgresql/9.5/main/postgresql.confчтобы он работал на 5432. Не забудьте перезапустить postgres после изменения.
Анкит Кулкарни
источник