จะถอนการติดตั้ง 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 และถอนการติดตั้งอันอื่นได้อย่างไร ขอบคุณ

UPDATE:

ตามที่แนะนำในความคิดเห็นฉันได้ถอนการติดตั้ง 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"?

คุณติดตั้ง 9.3 และ 9.5 อย่างไร
Rinzwind

9.3 ถูกติดตั้งโดยค่าเริ่มต้นใน 14.04 9.5 ได้รับการติดตั้งเมื่อฉันเพิ่ม PPI ด้านบน มันเพิ่งติดตั้งเซิร์ฟเวอร์ล่าสุด
Houman

Postgres ไม่ได้เป็นส่วนหนึ่งของ Ubuntu เริ่มต้น ;-) แต่ฉันจะถือว่าsudo apt-get remove postgresql-9.3จะลบ 9.3 (หลังจากปิดเซิร์ฟเวอร์ 9.3)
Rinzwind

ขอบคุณฉันทำตามคำแนะนำของคุณโปรดดูคำถามที่ปรับปรุง
Houman

เจอแล้ว. ทางออกคือการล้างทุกอย่างตามที่กล่าวไว้ที่นี่: 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/*
    

ฉันหวังว่ามันจะช่วยคุณ


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 (-p / - พอร์ต) ในคำสั่ง psql
  • หรือกำหนดค่า Postgres เซิร์ฟเวอร์ของคุณportคุ้มค่าการกำหนดค่าใน/etc/postgresql/9.5/main/postgresql.confการทำหน้าที่ใน 5432. ไม่ลืมที่จะรีสตาร์ท postgres หลังการเปลี่ยนแปลง
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.