ติดตั้ง postgresql เหตุใด initdb จึงไม่สามารถใช้งานได้


15

ฉันกำลังทำตามคำแนะนำเหล่านี้แต่ฉันไปถึงขั้นตอนที่ 17.2 เท่านั้น

แม้จะติดตั้ง postgresql สำเร็จผ่านทาง

sudo apt-get install postgresql

คำสั่งเมื่อทำงาน

initdb -D /usr/local/pgsql/data

Ubuntu บอกฉันว่ายังไม่ได้ติดตั้ง 'initdb' คำแนะนำบอกฉันว่าคำสั่งนี้ติดตั้งโดย

sudo apt-get install postgresql

แล้วเกิดอะไรขึ้น ฉันสามารถทำให้ initdb พร้อมใช้งานได้โดยติดตั้ง postgres-xc แต่ฉันคิดว่า postgres-xc เป็นเพียงขยะบุคคลที่สามแปลก ๆ และไม่มีรายละเอียดในคำแนะนำ ความคิดใด ๆ

คำตอบ:


14

initdbมีวัตถุประสงค์เพื่อให้ทำงานภายใต้บัญชีผู้ใช้ postgres ที่สร้างขึ้นในระหว่างการติดตั้ง หลังจากติดตั้ง postgresql คุณสามารถทำได้:

sudo su - postgres

initdbแล้วคุณควรจะสามารถทำงานได้


4
ข้อความจาก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.
/usr/share/doc/postgresql-common/README.Debian.gz

3
แม้หลังจากเปลี่ยนไปใช้ผู้ใช้ postgres ฉันยังคงได้รับข้อผิดพลาดนี้
Cogwheel

สิ่งนี้ใช้ไม่ได้กับฉันใน Ubuntu Server 14 โดยใช้ Postgres 9.6
sudo

มันไม่ทำงานตั้งแต่อยู่ในinitdb /usr/lib/postgresql/X.X/bin/
Li Dong

27

คุณจะพบว่าภายใต้initdb /usr/lib/postgresql/x.y/bin/ดูเพิ่มเติม/usr/share/doc/postgresql-common/README.Debian.gzสำหรับข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่าบน Debian และ Ubuntu


นี่ควรเป็นคำตอบที่ยอมรับได้จริง ๆ initdbเป็นคำสั่งพื้นฐาน แต่ผู้ใช้ Debian และ Ubuntu ควรใช้ pg_createcluster และชุดคำสั่งที่เกี่ยวข้อง นอกจากนี้โดยปกติคุณไม่จำเป็นต้องinitdbOR pg_createclusterหลังจากนั้นapt-get install postgresqlการติดตั้งมาตรฐานจะสร้างคลัสเตอร์เริ่มต้นพร้อมกับเซิร์ฟเวอร์และฐานข้อมูลเริ่มต้น / แม่แบบสำหรับคุณ README Peter กล่าวถึงข้างต้นมีค่าเวลาของคุณอ่าน
cdaddr

2
@cdaddr ไม่คุณมักไม่ต้องการมันหลังจากติดตั้ง postgres ถึงกระนั้นหากคุณพบว่าตัวเองต้องการสร้างคลัสเตอร์ใหม่อย่างรวดเร็วและไม่ต้องการรำคาญกับการติดตั้ง postgres ใหม่หรือหากคุณต้องการเริ่มต้นฐานข้อมูลใหม่ในตำแหน่งที่ไม่ได้มาตรฐานสิ่งนี้อาจมีประโยชน์ ใช่แล้วนี่คือคำตอบที่ดี
Erathiel

1
โรงงาน และมันดีที่สุดเพราะวิธีนี้ฉันมั่นใจได้ว่าฉันใช้เวอร์ชันไหน
sudo

เรากำลังค้นหา initdb เพราะ, กวดวิชาบอกว่าpostgresql.org/docs/10/static/creating-cluster.html
nerkn

2

initdbไม่ได้ติดตั้งในฐานะที่ผู้ใช้สามารถเรียกใช้งานได้ ติดตั้งเฉพาะใน/usr/lib/postgresql/X.X/bin/เพราะจะขึ้นอยู่กับรุ่นเสมอ initdbสามารถเรียกใช้งานได้จากไดเรกทอรีเฉพาะนั้นเท่านั้น

ดังที่กล่าวไว้ในคำตอบอื่น ๆ การติดตั้ง postgres จะสร้างไดเรกทอรีเริ่มต้นที่อาจอยู่ในพาร์ติชันที่ จำกัด ผู้ใช้อาจต้องการเปลี่ยนแปลงสิ่งนี้ แต่ต้องการขั้นตอนอื่นด้วย ดูที่นี่


-2

ทำตามขั้นตอนต่อไปนี้จากรูท 1.passwd postgres รหัสผ่านของคุณจากนั้น 2.su postgres 3.psql 4. สร้างผู้ใช้ชื่อผู้ใช้ของคุณเช่น "CREATE USER SAM;" 5. สร้างฐานข้อมูลแซม ตอนนี้ออกจาก 6.type psql ให้กับผู้ใช้ของคุณ


คำตอบนี้ไม่ได้ตอบคำถามโดยตรงเลย
cdaddr
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.