PostgreSQL'i tamamen varsayılana sıfırlansın mı?


17

Soru

Linux'ta bir PostgreSQL kurulumunu tamamen sıfırlamanın bir yolu var mı, bu yüzden kurduğumla aynı durumda mı?

Fikir

Düşündüm

rm -rf /var/lib/pgsql/*
rm -rf /var/lib/pgsql/backups/*
rm -rf /var/lib/pgsql/data/*

ama belki de bu önerilen bir yöntem değildir.

amaç

Bu, onu kullanan önceki programlardan kalan fazlalıklardan kurtulmak için kullanışlı olacaktır.


Yanıtlar:


5

İşte bu yapmalıyım - sadece emin önce geçerli yapılandırma aslında yapmak does o dizinlerde dosyaları depolamak.

Tamamlandığında, veritabanını yeniden başlatın:

sudo -U pgsql initdb

1
Hayır, lütfen yapma. En azından Ubuntu'da bu, kendi sarmalayıcı araçlarını kullanmanızı beklediği için iğrenç bir karmaşaya neden olacaktır.
— Craig Ringer

1
Öyle mi? Başka bir sistemi kullanmak için bir neden daha var, o zaman ... Şahsen ben FreeBSD'ye oy verirdim, ama her biri kendi başına.
— Jenny D

@Craig: Ne tür bir karışıklık yaratır? Bu yöntemi sadece Ubuntu'da kullandım ve bana iyi geliyor . Cevabınıza biraz ayrıntı ekler misiniz?
— halfer

1
@halfer Postgresql.conf ve pg_hba.conf ile başlamak ububtu betiklerinin beklediği yerde olmayacak. Ya da oluşturulanları initdb görmezden gelir ve eskilerini kullanmaya devam ederler.
— Craig Ringer

ya yerel olarak başlattığımız değil, bağlandığımız uzak bir veritabanı ise?
— anon58192932

24

Her şey nasıl kurulduğuna bağlı.

Ubuntu, paketlerden (yerleşik veya apt.postgresql.org)

Kullanın pg_wrapper. PostgreSQL için Ubuntu belgelerine bakın . pg_dropclusterVarolan tüm Pg kümelerine, ardından pg_createclusteryeni ve temiz bir kümeye istiyorsunuz .

Do not sadece veri dir ve yeniden initdb silin.

CentOS / RH / Fedora, yerleşik paketler

Bunu yüklemedim ve şu anda kolayca test edemiyorum. Bellekten sadece sunucuyu durdurmak ve veri dir silmek için güvenli olduğunu düşünüyorum.

CentOS / RH / Fedora, yum.postgresql.org paketleri

Bkz /usr/share/doc/postgresql??-?.?.?/README.rpm-dist.

Sunucuyu systemctlveya servicesarmalayıcı komutuyla durdurun, veri dizinini silin, ardından çalıştırın /usr/pgsql-9.3/bin/postgresql93-setup initdb(yolları sürümünüze uygun şekilde ayarlayın).

EDB yükleyicisinden herhangi bir dağıtım

Sunucuyu durdurun, veri dizinini ve initdbyeni bir kümeyi silin . Kurulum belgelerine bakın.

Kaynaktan

Sunucuyu durdurun, veri dizinini silin, yeniden başlatın.

OS X

homebrew: brew uninstall postgresql; brew cleanup; brew install postgresql

Postgres.app? EDB yükleyicisi? MacPorts?

Bir bira bul. Bira iç. Tekrar et. Bu acıyı ortadan kaldırmazsa, daha güçlü bir şey alın.

pencereler

  • Hizmeti durdur
  • Veri dizinini sil
  • runas.exepostgres kullanıcısı (9.2 öncesi) veya NETWORKSERVICE(9.2+) olarak initdb'yi yeniden çalıştırın . Ya da daha sonra mülkiyeti değiştirin.

1
OS X için, demleme kaldırma ve temizleme veri dizinim /usr/local/var/postgresql@9.5'e dokunmuyor. (/usr/local/opt/postgresql@9.5 içindeki uygulamayı kaldırır, "opt" değil "var" not edin) "rm -rf /usr/local/var/postgresql@9.5" yeniden yüklemeden önce gerekli.
— Curtis Yallop

4

Sadece kaldırmak ve yeniden yüklemek en iyisi değil mi?

Bu şekilde, en son sürümü alacak ve yol boyunca herhangi bir bağımlılığı güncelleyeceksiniz.

Run: sudo apt-get --purge kaldır postgresql

Sonra: sudo apt-get install postgresql


1
Bu, mevcut DB + kullanıcılarını kaldırmadı (Postgres 9.5 itibariyle)
— Sebastian Wagner
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.