เซิร์ฟเวอร์ postgres ล้มเหลวในการเริ่มต้นไม่มีการสร้างบันทึกวิธีการแก้ไขปัญหา?


33

ฉันเริ่มต้นอินสแตนซ์ 9.3 ของ postgres บนเซิร์ฟเวอร์ ubuntu 12.04:

~# service postgresql start 

 * The PostgreSQL server failed to start. Please check the log output.
                                                                     [fail]

การเริ่มต้นล้มเหลว แต่ไม่มีบันทึกไฟล์นี้ว่างเปล่า:

tail /var/log/postgresql/postgresql-9.3-main.log 

และไม่มีไฟล์อื่น ๆ ในไดเรกทอรีนี้: / var / log / postgresql /

วิธีที่ดีที่สุดในการแก้ไขปัญหานี้คืออะไร


นี่เป็นการติดตั้ง pg ใหม่หรือคุณเพิ่งอัพเกรด ตรวจสอบว่าผู้ใช้ postgres มีสิทธิ์ในไฟล์ pg config และไฟล์บันทึก
LinuxDevOps

3
ลองใช้ postgres แบบเดียวกับที่สคริปต์ของคุณทำ (ปกติแล้วsu - postgres; /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/dataดูว่ามันให้อะไรคุณคุณอาจต้องเปลี่ยนชื่อผู้ใช้และพา ธ ขึ้นอยู่กับการตั้งค่าของคุณ
Jenny D พูด Reinstate Monica

นอกจากสิ่งที่ @JennyD พูดแล้วฉันจะเพิ่ม-d 3ไปยังpostgresคำสั่ง สิ่งนี้จะช่วยให้การดีบักเอาต์พุตที่ครอบคลุมมากขึ้นถูกเขียนลงในบันทึก คุณสามารถลดเอาต์พุตการดีบักโดยเปลี่ยนเป็น 1 หรือ 2 หรือเพิ่มโดยการเปลี่ยนเป็น 4 หรือ 5 นอกจากนี้เอาต์พุตของwhich pgsqlคืออะไร
zymhan

PostgreSQL ติดตั้งบนเซิร์ฟเวอร์ได้อย่างไรและจากที่ใด มีอะไรในบันทึกของระบบเช่น / var / log / syslog, / var / log / Messages ฯลฯ
Craig Ringer

6
ฉันไม่เข้าใจว่าทำไมคำถามนี้จึงถูกปิด
guettli

คำตอบ:


53

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

ฉันเชื่อว่านี่จะเป็นบรรทัดคำสั่งที่ถูกต้องสำหรับ PostgreSQL 9.3 บน Ubuntu แต่อาจต้องมีการปรับแต่งเล็กน้อย (หมายเหตุ: บรรทัดถูกแบ่งเพื่อให้สามารถอ่านได้คุณสามารถรวมกันเป็นบรรทัดเดียวได้โดยไม่ต้องใช้แบ็กสแลช)

/usr/lib/postgresql/9.3/bin/postgres -d 3 -D /var/lib/postgresql/9.3/main \
   -c config_file=/etc/postgresql/9.3/main/postgresql.conf

จุดเริ่มต้นคือตำแหน่งของpostgresไบนารีจากนั้นเราเปิดใช้งานการดีบักและตั้งค่าเป็นระดับ 3 (คุณสามารถปรับขึ้นหรือลงเพื่อเพิ่มหรือลดรายละเอียด) ต่อไปเราจะระบุไดเรกทอรีข้อมูลและไฟล์กำหนดค่าที่จะเริ่มต้นด้วย ฉันคิดว่านี่เป็นค่าเริ่มต้นสำหรับ Ubuntu Server 12.04

หวังว่าจะให้ข้อมูลที่เพียงพอแก่คุณในการพิจารณาว่าปัญหาอยู่ที่ใด


1
การเริ่มต้นใช้งานด้วยตนเองสำหรับฉัน แต่การใช้บริการยังไม่เป็นเช่นนั้น ฉันเปลี่ยนไดเรกทอรีข้อมูลเริ่มต้นมีบางสิ่งที่ฉันจะต้องอัปเดตเพื่อให้คำสั่งบริการทำงานอีกครั้งสำหรับการเริ่มต้น postgres?
chrismarx

1
@chrismarx - serviceคำสั่งเป็นเพียง wrapper ที่สะดวกรอบ/etc/init.d/สคริปต์ที่เริ่มต้นและหยุดกระบวนการจริงๆ คุณจะต้องดูที่สคริปต์นั้นเพื่อดูว่ามันทำอะไรแตกต่างจากเมื่อคุณเรียกใช้ด้วยตนเอง การทำสิ่งที่ชอบbash -x /etc/init.d/postgresql startอาจเป็นจุดเริ่มต้นที่ดีในการทำวิจัยของคุณ
Christopher Cashell

3
ขอบคุณฉันได้รับการจัดเรียงนี้มีปัญหาสิทธิ์การใช้งานกับไดเรกทอรีข้อมูลและดูเหมือนว่าบริการยังต้องทำงานด้วย sudo
chrismarx

1
ผู้ช่วยชีวิต ฉันไม่สามารถหาวิธีอื่นที่จะบอกได้ว่าทำไม PostgreSQL จะไม่เริ่มต้นเนื่องจากเป็นเพราะไม่สามารถเข้าถึงไดเรกทอรีข้อมูลได้เนื่องจากปัญหาการอนุญาต
Aron Lorincz

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