Cài đặt postgresql. Tại sao initdb không có sẵn?


15

Tôi đang làm theo các hướng dẫn này , tuy nhiên tôi chỉ có thể đến bước 17.2.

Mặc dù đã cài đặt postgresql thành công thông qua

sudo apt-get install postgresql

lệnh, khi chạy

initdb -D /usr/local/pgsql/data

Ubuntu nói với tôi rằng nó 'initdb' chưa được cài đặt. Các hướng dẫn cho tôi biết lệnh này được cài đặt bởi

sudo apt-get install postgresql

vì vậy những gì đang xảy ra? Tôi có thể cung cấp initdb bằng cách cài đặt postgres-xc, nhưng tôi nghĩ postgres-xc chỉ là thứ rác rưởi của bên thứ ba kỳ lạ và nó không được nêu chi tiết trong hướng dẫn. Có ý kiến ​​gì không?

Câu trả lời:


14

initdbđược dự định chạy dưới tài khoản người dùng postgres được tạo trong quá trình cài đặt. Sau khi cài đặt postgresql bạn có thể làm:

sudo su - postgres

Sau đó, bạn sẽ có thể chạy initdb.


4
Trích dẫn từ /usr/share/doc/postgresql-common/README.Debian.gz:Please note that you can of course also use the upstream tools for creating clusters, such as initdb(1). However, please note that in this case you cannot expect *any* of above pg_* tools to work, since they use different configuration settings and file locations. If in doubt, then do *not* use initdb, but only pg_createcluster. Since merely installing postgresql-X.Y will already set up a default cluster which is ready to work, most people do not need to bother about initdb or pg_createcluster at all.
cdaddr

3
Ngay cả sau khi chuyển sang người dùng postgres tôi vẫn gặp lỗi này
Cogwheel

Điều này không hoạt động với tôi trong Ubuntu Server 14 bằng Postgres 9.6.
sudo

Nó không hoạt động, vì initdblà trong /usr/lib/postgresql/X.X/bin/.
Li Dong

27

Bạn sẽ tìm thấy initdbdưới /usr/lib/postgresql/x.y/bin/. Xem thêm /usr/share/doc/postgresql-common/README.Debian.gzđể biết thêm thông tin về thiết lập trên Debian và Ubuntu.


Đây thực sự nên là câu trả lời được chấp nhận. initdblà lệnh cơ bản nhưng người dùng Debian và Ubuntu nên sử dụng pg_createcluster và bộ lệnh liên quan của nó. Hơn nữa, thông thường bạn không cần initdbHOẶC pg_createclustersau khi apt-get install postgresqlcài đặt chuẩn đã tạo một cụm mặc định, với máy chủ và cơ sở dữ liệu mặc định / mẫu, dành cho bạn. Peter README đề cập ở trên là giá trị thời gian của bạn để đọc.
cdaddr

2
@cdaddr Không, bạn thường không cần nó sau khi cài đặt postgres. Tuy nhiên, nếu bạn thấy mình cần nhanh chóng tạo lại một cụm và không muốn bận tâm đến việc cài đặt lại các postgres hoặc nếu bạn cần khởi tạo một cơ sở dữ liệu mới ở một vị trí không chuẩn, điều này có thể có ích. Vì vậy, có, đây là một câu trả lời tuyệt vời.
Erathiel

1
Làm. Và nó là tốt nhất bởi vì theo cách này tôi có thể chắc chắn mình đang sử dụng phiên bản nào.
sudo

chúng tôi đang tìm kiếm initdb bởi vì, hướng dẫn nói như vậy postgresql.org/docs/10/static/creating-cluster.html
nerkn

2

initdbkhông được cài đặt như người dùng thực thi. Chỉ được cài đặt trong /usr/lib/postgresql/X.X/bin/, bởi vì nó luôn phụ thuộc vào phiên bản. initdbchỉ có thể được thực hiện từ thư mục cụ thể đó.

Như đã đề cập trong các câu trả lời khác, việc cài đặt postgres tạo một thư mục mặc định có thể nằm trong một phân vùng giới hạn. Người dùng có thể muốn thay đổi điều này, nhưng nó cũng yêu cầu các bước khác. thấy ở đây .


-2

theo dõi các bước sau từ root 1.passwd postgres mật khẩu của bạn sau đó 2.su postgres 3.psql 4. tạo người dùng tên người dùng của bạn như "CREATE USER SAM;" 5. tạo cơ sở dữ liệu sam; bây giờ hãy đăng xuất 6.type psql cho người dùng của bạn


Câu trả lời này không giải quyết câu hỏi trực tiếp nào cả.
cdaddr
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.