Hoàn toàn thiết lập lại PostgreSQL về mặc định?


16

Câu hỏi

Có cách nào để thiết lập lại hoàn toàn cài đặt PostgreSQL trên Linux, vì vậy nó ở trạng thái giống như khi tôi cài đặt nó?

Ý tưởng

tôi đã xem xét

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

nhưng có lẽ đó không phải là một phương pháp được khuyến nghị.

Mục đích

Điều này sẽ hữu ích để loại bỏ phần dư thừa từ các chương trình trước đó đã sử dụng nó.


Bản sao có thể có của serverfault.com/q/233234/69930 .
halfer

Câu trả lời:


4

Điều đó sẽ làm điều đó - chỉ cần đảm bảo đầu tiên mà cấu hình hiện tại thực sự không lưu trữ các tập tin trong thư mục đó.

Khi đã xong, hãy khởi tạo lại cơ sở dữ liệu:

sudo -U pgsql initdb

1
Không, xin đừng. Trên Ubuntu ít nhất điều đó sẽ gây ra một mớ hỗn độn ghê tởm vì nó hy vọng bạn sử dụng các công cụ trình bao bọc riêng của nó.
Craig Ringer

1
Nó không? Chà, có thêm một lý do để sử dụng một số hệ thống khác, sau đó ... Cá nhân tôi sẽ bỏ phiếu cho FreeBSD, nhưng mỗi người đều tự quyết định.
Jenny D nói Phục hồi lại

@Craig: nó sẽ tạo ra mớ hỗn độn nào? Tôi mới sử dụng phương pháp này trên Ubuntu và có vẻ như nó ổn với tôi . Bạn sẽ thêm một số chi tiết cho câu trả lời của bạn?
halfer

1
@halfer Để bắt đầu với postgresql.conf và pg_hba.conf sẽ không phải là nơi các tập lệnh ububtu mong đợi. Hoặc họ sẽ bỏ qua những cái initdb được tạo và tiếp tục sử dụng những cái cũ.
Craig Ringer

Điều gì xảy ra nếu đây là cơ sở dữ liệu từ xa mà chúng tôi đã kết nối và không phải là cơ sở dữ liệu mà chúng tôi đã khởi tạo cục bộ?
anon58192932

24

Tất cả phụ thuộc vào cách nó được cài đặt.

Ubuntu, từ các gói (tích hợp hoặc apt.postgresql.org)

Sử dụng pg_wrapper. Xem tài liệu Ubuntu cho PostgreSQL . Bạn muốn pg_dropclustertất cả các cụm PG hiện có, sau đó pg_createclustermột cụm mới sạch.

Đừng không chỉ xóa các thư mục dữ liệu và tái initdb.

CentOS / RH / Fedora, gói tích hợp

Tôi chưa cài đặt cái này và không thể dễ dàng kiểm tra ngay bây giờ. Từ bộ nhớ, tôi nghĩ an toàn khi chỉ dừng máy chủ và xóa thư mục dữ liệu.

Các gói CentOS / RH / Fedora, yum.postgresql.org

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

Dừng máy chủ bằng systemctlhoặc servicelệnh trình bao bọc, xóa thư mục dữ liệu, sau đó chạy /usr/pgsql-9.3/bin/postgresql93-setup initdb(điều chỉnh đường dẫn phù hợp với phiên bản của bạn).

Bất kỳ bản phân phối nào, từ trình cài đặt EDB

Dừng máy chủ, xóa thư mục dữ liệu và initdbmột cụm mới. Xem tài liệu cài đặt.

Từ nguồn

Dừng máy chủ, xóa dữ liệu dir, re-initdb.

Hệ điều hành X

Homebrew: brew uninstall postgresql; brew cleanup; brew install postgresql

Postgres.app? Trình cài đặt EDB? MacPorts?

Tìm một cốc bia. Uống bia. Nói lại. Nếu điều này không làm cho cơn đau biến mất, hãy lấy thứ gì đó mạnh mẽ hơn.

các cửa sổ

  • Dừng phục vụ
  • Xóa thư mục dữ liệu
  • chạy lại initdb bằng cách sử dụng runas.exenhư người dùng postgres (trước 9.2) hoặc NETWORKSERVICE(9.2+). Hoặc chỉ thay đổi quyền sở hữu sau đó.

1
Đối với OS X, chương trình gỡ cài đặt và dọn dẹp không chạm vào dữ liệu của tôi dir /usr/local/var/postgresql@9.5. .
Curtis Yallop

4

Không phải là tốt nhất để chỉ gỡ bỏ và cài đặt lại?

Bằng cách đó, bạn sẽ có được phiên bản mới nhất và cập nhật mọi sự phụ thuộc trên đường đi.

Chạy: sudo apt-get --purge xóa postgresql

Sau đó: sudo apt-get cài đặt postgresql


1
Điều này không xóa người dùng DB + hiện tại (kể từ Postgres 9.5)
Sebastian Wagner
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.