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.