Instal postgresql. Mengapa initdb tidak tersedia?

15

Saya mengikuti petunjuk ini , namun saya hanya bisa sampai ke langkah 17.2.

Meskipun berhasil menginstal postgresql melalui

sudo apt-get install postgresql

perintah, saat dijalankan

initdb -D /usr/local/pgsql/data

Ubuntu memberi tahu saya bahwa itu 'initdb' tidak diinstal. Instruksi memberi tahu saya bahwa perintah ini diinstal oleh

sudo apt-get install postgresql

jadi apa yang terjadi? Saya dapat membuat initdb tersedia dengan menginstal postgres-xc, tapi saya pikir postgres-xc hanyalah beberapa sampah pihak ketiga yang aneh, dan itu tidak dirinci dalam instruksi. Ada ide?

Starkers
sumber

Jawaban:

14

initdbdimaksudkan untuk dijalankan di bawah akun pengguna postgres yang dibuat saat instalasi. Setelah menginstal postgresql Anda dapat melakukan:

sudo su - postgres

Maka Anda harus bisa lari initdb.

Brian. Pengacara
sumber
4
Mengutip dari /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
Bahkan setelah beralih ke pengguna postgres saya masih mendapatkan kesalahan ini
Cogwheel
Ini tidak berfungsi untuk saya di Ubuntu Server 14 menggunakan Postgres 9.6.
sudo
Itu tidak berfungsi, karena initdbada di /usr/lib/postgresql/X.X/bin/.
Li Dong
27

Anda akan menemukan di initdbbawah /usr/lib/postgresql/x.y/bin/. Lihat juga /usr/share/doc/postgresql-common/README.Debian.gzuntuk informasi lebih lanjut tentang pengaturan pada Debian dan Ubuntu.

Peter Eisentraut
sumber
Ini benar-benar harus menjadi jawaban yang diterima. initdbadalah perintah yang mendasarinya tetapi pengguna Debian dan Ubuntu harus menggunakan pg_createcluster dan rangkaian perintah terkait. Selanjutnya Anda biasanya tidak perlu initdbATAU pg_createclustersetelah apt-get install postgresqlkarena instalasi standar sudah membuat cluster default, dengan server dan database default / template, untuk Anda. README yang disebutkan Peter di atas layak untuk dibaca.
cdaddr
2
@cdaddr Tidak, Anda biasanya tidak memerlukannya setelah menginstal postgres. Namun, jika Anda merasa perlu membuat kembali sebuah cluster dengan cepat dan tidak ingin repot menginstal ulang postgres atau jika Anda perlu menginisialisasi database baru di lokasi yang tidak standar, ini mungkin berguna. Jadi ya, ini jawaban yang bagus.
Erathiel
1
Bekerja Dan itu yang terbaik karena dengan cara ini saya dapat memastikan versi mana yang saya gunakan.
sudo
kami sedang mencari initdb karena, tutorial mengatakan demikian postgresql.org/docs/10/static/creating-cluster.html
nerkn
2

initdbtidak diinstal sebagai yang dapat dieksekusi pengguna. Hanya diinstal /usr/lib/postgresql/X.X/bin/, karena selalu tergantung pada versi. initdbhanya dapat dieksekusi dari direktori tertentu.

Seperti disebutkan dalam jawaban lain, instalasi postgres membuat direktori default yang mungkin ada di partisi terbatas. Pengguna mungkin ingin mengubah ini, tetapi membutuhkan langkah-langkah lain juga. lihat di sini .

ilias iliadis
sumber
-2

ikuti langkah-langkah berikut dari root 1.passwd postgres kata sandi Anda kemudian 2.su postgres 3.psql 4. buat pengguna dari nama pengguna Anda seperti "CREATE USER SAM;" 5. buat database sam; sekarang logout 6. ketik psql ke pengguna Anda

smn_onrocks
sumber
Jawaban ini sama sekali tidak menjawab pertanyaan.
cdaddr