Postgres lỗi khởi động gói không đầy đủ


13

Tôi đang cố gắng cài đặt Postgres 9.3 trên Ubuntu 14.04 và tôi đang gặp một lỗi không đáng có khi khởi động. Đây là những gì tôi đang thấy:

$ sudo service postgresql restart
* Restarting PostgreSQL 9.3 database server
* Error: could not exec /usr/lib/postgresql/9.3/bin/pg_ctl /usr/lib/postgresql/9.3/bin/pg_ctl start -D /var/lib/postgresql/9.3/main -l /var/log/postgresql/postgresql-9.3-main.log -s -o  -c config_file="/etc/postgresql/9.3/main/postgresql.conf" : [fail]

Vì vậy, tôi đã kiểm tra tệp nhật ký với đầu ra này:

 2015-01-05 21:50:05 EST LOG:  database system was shut down at 2015-01-05 21:50:03 EST
 2015-01-05 21:50:05 EST LOG:  database system is ready to accept connections
 2015-01-05 21:50:05 EST LOG:  autovacuum launcher started
 2015-01-05 21:50:06 EST LOG:  incomplete startup packet
 2015-01-05 21:51:22 EST ERROR:  syntax error at or near "exit" at character 1
 2015-01-05 21:51:22 EST STATEMENT:  exit;

"Gói khởi động không đầy đủ" dường như là thủ phạm nhưng tôi gặp khó khăn trong việc tìm kiếm thông tin ngoài kia về những gì có thể xảy ra, vì vậy tôi nghĩ tôi sẽ hỏi. Cảm ơn trước.

Câu trả lời:


15

Có 3 mục khác nhau trong câu hỏi này:

  • Gói khởi động không đầy đủ xảy ra khi máy chủ khởi động là không quan trọng, bạn có thể bỏ qua nó. Đọc trợ giúp gói khởi động không đầy đủ cần thiết (trong danh sách gửi thư chung pssql) để biết thêm.

  • lỗi cú pháp tại hoặc gần "thoát" ở ký tự 1 có nghĩa là máy khách được phát ra exitnhư thể đó là một câu lệnh SQL.

  • Các không thể exec lỗi khi phát hành service postgresql restarttrông giống như một vấn đề nghiêm trọng cài đặt nhưng nó mâu thuẫn với mục log database system is ready to accept connectionsnghĩa là máy chủ bắt đầu lên tốt.


Phản hồi của bạn "có vẻ như là một sự cố cài đặt nghiêm trọng" đã thôi thúc tôi thực hiện thêm một số nghiên cứu về cách xóa hoàn toàn Postgres và cài đặt lại. Tôi thấy bài viết này rất hữu ích trong việc xóa mọi dấu vết của Postgres trước khi cài đặt lại và hoạt động rất tốt.
andrewniesen

8
một trong những nguyên nhân có thể gây ra "gói khởi động không đầy đủ" là khi kết nối TCP được thực hiện với cổng postgresql 5432 và ngay lập tức bị đóng. Điều này có thể xảy ra khi một chương trình giám sát được cấu hình để kiểm tra cổng, nhưng không chạy lệnh SQL.
Tom H

Phát hiện độc đáo @TomH, bit đó hôm nay. Có cách nào khác để kiểm tra xem cơ sở dữ liệu có chấp nhận kết nối không? MySQL cómysqladmin --wait=30 ping
Yarek T

1
@YarekT: pg_isready - kiểm tra tình trạng kết nối của một máy chủ PostgreSQL
Daniel vérité

-1

Có thể iptables của bạn đang bỏ các gói trên cổng 5432.
Hãy xem xét thêm quy tắc sau vào iptables của bạn:

# sudo iptables -A INPUT -p tcp -m tcp --dport 5432 -j ACCEPT
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.