9

Tôi đang cố gắng để có được Postgres 9.2.4 để chạy như một dịch vụ trên Windows 7. Sau khi cài đặt postgres, dịch vụ đã chạy tốt. Tuy nhiên, sau khi thiết lập postgres lên như một máy chủ cho một chương trình khác, dịch vụ ngừng hoạt động. Khi tôi cố gắng để bắt đầu dịch vụ bây giờ, tôi nhận được một thông báo nói:.PostgreSQL 9.2.4 (Windows 7) - Dịch vụ sẽ không bắt đầu, "không thể tải pg_hba.conf"

"The postgresql-x64-9.2 - PostgreSQL server 9.2 dịch vụ trên địa phương máy tính khởi động và sau đó dừng lại Một số dịch vụ tự động dừng nếu họ không được sử dụng bởi các dịch vụ hoặc chương trình khác. "

Khi tôi thử chạy chương trình mà nên sử dụng các máy chủ cơ sở dữ liệu, tôi nhận được lỗi này:

"Một vấn đề đã gặp phải khi cố gắng đăng nhập vào hoặc tạo cơ sở dữ liệu sản xuất chi tiết:. Có thể không kết nối với máy chủ; có thể không kết nối với ổ cắm điều khiển từ xa đơn phải đóng ngay bây giờ"

tôi cũng gặp phải lỗi này một lần trong khi mở chương trình giống nhau:

.

"Đã xảy ra sự cố khi cố gắng đăng nhập hoặc tạo cơ sở dữ liệu sản xuất . Thông tin chi tiết: Fatal:. Không thể tải pg_hba.conf Các ứng dụng bây giờ phải chặt chẽ"

Tôi đã thử chạy các dịch vụ đăng nhập như một tài khoản hệ thống địa phương cũng như tài khoản của riêng tôi (Trong các thuộc tính dịch vụ postgres) . vô ích tôi cũng đã cố gắng khởi động lại máy tính của tôi Sau rất nhiều xử lý sự cố trên mạng, tôi biết được rằng một điều tốt để kiểm tra là file pg_log Dưới đây là nội dung của mục pg_log mới nhất:..

2013-05-29 14:59:45 MDT LOG: database system was interrupted; last known up at 2013-05-29 14:58:01 MDT 
2013-05-29 14:59:45 MDT LOG: database system was not properly shut down; automatic recovery in progress 
2013-05-29 14:59:45 MDT LOG: record with zero length at 0/175BB98 
2013-05-29 14:59:45 MDT LOG: redo is not required 
2013-05-29 14:59:45 MDT LOG: database system is ready to accept connections 
2013-05-29 14:59:45 MDT LOG: autovacuum launcher started 
2013-05-29 15:07:00 MDT LOG: local connections are not supported by this build 
2013-05-29 15:07:00 MDT CONTEXT: line 1 of configuration file "C:/PostgreSQL/data/pg_hba.conf" 
2013-05-29 15:07:00 MDT FATAL: could not load pg_hba.conf 
2013-05-29 15:07:00 MDT LOG: local connections are not supported by this build 
2013-05-29 15:07:00 MDT CONTEXT: line 1 of configuration file "C:/PostgreSQL/data/pg_hba.conf" 
2013-05-29 15:07:00 MDT FATAL: could not load pg_hba.conf 
2013-05-29 15:09:03 MDT LOG: received fast shutdown request 
2013-05-29 15:09:03 MDT LOG: aborting any active transactions 
2013-05-29 15:09:03 MDT LOG: autovacuum launcher shutting down 
2013-05-29 15:09:03 MDT LOG: shutting down 
2013-05-29 15:09:03 MDT LOG: database system is shut down 

dường gặp sự cố với tệp pg_hba.conf, trông giống như sau:

local all all trust 
host all all 127.0.0.1 255.255.255.255 trust 
host all all 0.0.0.0 0.0.0.0 trust 

Theo nhiều đề xuất trực tuyến, tôi đã thử chỉnh sửa dòng trên cùng cho một số lựa chọn thay thế khác nhau (lưu trữ tất cả tất cả tin cậy/lưu trữ tất cả 127.0.0.1/32 tin tưởng/lưu trữ tất cả tin tưởng 192.168.0.100/24, v.v.) . Điều này có ý nghĩa đối với tôi, vì tệp nhật ký đã nói rằng các kết nối cục bộ không được hỗ trợ bởi postgres và cũng chỉ vào dòng đó. Tuy nhiên, không có thay đổi nào của tôi có hiệu lực. Tôi đã thử khởi động lại máy tính sau mỗi lần thay đổi nhưng không có gì khác biệt.

Khi tôi tìm kiếm ví dụ về tệp pg_hba.conf thường trông như thế nào, các ví dụ có vẻ hơi khác so với tệp của tôi. Tôi nhận thấy rằng trong tệp chương trình PostgreSQL, ngoài tệp pg_hba.conf, cũng có tệp "20130529-150444-old-pg_hba.conf" trông giống như ví dụ tôi đã tìm kiếm trực tuyến. Tập tin này có một vài dòng bình luận trước những vài dòng cuối cùng:

# TYPE DATABASE  USER   ADDRESS     METHOD 

# IPv4 local connections: 
host all    all    127.0.0.1/32   md5 
# IPv6 local connections: 
host all    all    ::1/128     md5 
# Allow replication connections from localhost, by a user with the 
# replication privilege. 
#host replication  postgres  127.0.0.1/32   md5 
#host replication  postgres  ::1/128     md5 

Tôi đã hy vọng rằng đây là tập tin pg_hba.conf gốc và rằng nếu tôi thay thế các tập tin mới với những nội dung của cái cũ, postgres sẽ bắt đầu làm việc trở lại. Không may mắn như vậy. Tôi đã được hy vọng cho các tập tin lỗi hơn để được đăng nhập vào pg_log để xem nếu lỗi đã nêu trước đó đã biến mất hoặc thay đổi để cái gì khác, nhưng không có tập tin nhiều hơn đã được đăng nhập.

Tôi đã khắc phục sự cố trực tuyến trong vài ngày và không có gì tôi tìm thấy đã hoạt động. Xin lỗi vì đã có một câu hỏi dài, nhưng tôi muốn được toàn diện và bao gồm tất cả các thông tin liên quan. Tôi sẽ đánh giá cao nếu bất cứ ai có thể làm sáng tỏ vấn đề này hoặc đưa ra đề nghị.

Trả lời

0

Vì vậy, từ chối trách nhiệm nhanh chóng, tôi hiện đang chạy PostgreSQL trên Linux. Nhưng, năm trước, tôi đã chạy nó trên Windows. Và tôi dường như nhớ vấn đề này. Tôi nghĩ đầu mối nằm trong dòng này:

2013-05-29 15:07:00 MDT LOG: local connections are not supported by this build 

kết nối cục bộ là điều Unix. Bạn đang sử dụng các cửa sổ. Vì vậy, "không được hỗ trợ bởi xây dựng này". Hãy thử thay đổi cục bộ thành localhost và khởi động lại. Dưới đây là một số enter link description here cho một vấn đề tương tự được đăng trên danh sách gửi thư của Postgres:

2

Vấn đề là phiên bản postgres này dưới win7 không thể xử lý các kết nối cục bộ. Tôi đã phải làm việc với pg rất khẩn trương trên máy tính địa phương của tôi vì vậy tôi đã không quan tâm quá nhiều về an ninh vì vậy có lẽ đây không phải là giải pháp tốt nhất cho một môi trường sống. Nhưng máy tính địa phương của tôi là đủ.

Tôi đã gỡ bỏ tất cả các dòng chú thích khác từ pg_hba.conf và còn lại trong chỉ sau một:

host all    all    ::1/0     trust 

Sau này tôi có thể kết nối thông qua dòng lệnh.

Tôi không hiểu tại sao hướng dẫn sử dụng không nói thêm về vấn đề này. Tôi khá chắc chắn nhiều người có vấn đề với điều này.

+0

Thanks, điều này làm việc cho tôi, mặc dù thêm dòng sau bao gồm IP cục bộ của tôi (kết nối từ máy ảo cục bộ) đã thực hiện thủ thuật: 'lưu trữ tất cả tất cả 192.168.1.49/32 md5' –

+0

Đây là giải pháp duy nhất làm việc cho tôi. Cảm ơn! – profimedica

+0

Sử dụng biến thể ipv4 này hoặc bất kỳ trong tập tin conf mang lại cùng một lỗi khi tôi cố gắng để bắt đầu postgres. – Amalgovinus

5

Tôi gặp sự cố này với phiên bản Postgresql 8.3 sau khi cài đặt nó trên máy tính Windows 7. Ban đầu nó hoạt động bình thường, nhưng đột nhiên nó dừng lại (có thể sau một số cập nhật Windows). Nhiều dự án đã được thực hiện quyền thay đổi, nhưng nó đã không đưa nó vào hoạt động. Một vài tháng sau, tôi phát hiện thấy sự cố trong tệp bị trống, trong khi đó, tệp phải có một số dữ liệu. Xác minh đường dẫn này: C: \ Program Files (x86) \ Postgresql \ 8.3 \ data \ (trong đó 8.3 phải được thay thế thành số phiên bản của bạn). Kiểm tra xem tệp Postmaster.pid có trống hay không (mở tệp bằng Wordpad hoặc Notepad). Nếu trống, hãy đổi tên thành _Postmaster.pid (hoặc tên khác). Vào Start menu và theo lệnh loại hộp services.msc Nhấn Enter Xác định vị trí các cơ sở dữ liệu PostgreSQL nhập nhấp đúp vào nó Bấm vào nút Start Nếu dịch vụ bắt đầu, một Postmaster.pid mới sẽ được tạo ra (với một số dữ liệu) Bạn có thể kiểm tra nó trong đường dẫn đã nêu ở trên.

Mẹo hay là từ phân tích Trình xem sự kiện: Mở Windows Explorer, chọn "Máy tính", nhấp chuột phải vào "Quản lý", chọn "Trình xem sự kiện", chờ "Tóm tắt sự kiện quản trị" để tải, mở " Lỗi "nút, định vị" mục nhập "PostgreSQL" trong cột "Nguồn" và nhấp đúp vào nó. Đã có mẹo thông báo dữ liệu không có thật trong tệp Postmaster.pid.

Tôi hy vọng thông tin này có thể giúp bạn. Chúc mừng! Ed.

+0

Tôi có vấn đề khác nhau nhưng +1 cho mẹo Trình xem sự kiện! –

2

Tôi đã gặp sự cố tương tự. Những gì đã hiệu quả đối với tôi là:

  1. Mở tệp postgresql.conf (thường được đặt tại C: \ Program Files \ PostgreSQL \ 9.4 \ dữ liệu);
  2. Comment số dòng 147 (shared_preload_libraries = '$libdir/plugins/plugin_debugger.dll')
3

Mục địa phương không được hỗ trợ trên các máy Windows. Xem E.20.3.1.3. Authentication.

chối dòng địa phương trong pg_hba.conf trên nền tảng mà không hỗ trợ kết nối Unix-socket (Magnus Hagander)

Trước đây, đường dây như vậy đã được âm thầm bỏ qua, mà có thể là đáng ngạc nhiên. Điều này làm cho hành vi giống như các trường hợp không được hỗ trợ khác.

Thay đổi cấu hình của bạn từ:

local all all  trust 

tới:

host all all 127.0.0.1/32 trust 
host all all ::1/128  trust 

Mọi chi tiết, tham khảo ý kiến ​​19.1. The pg_hba.conf File.

2

Trong trường hợp này, tốt nhất là phân tích nhật ký hệ điều hành. Đối với các cửa sổ, hãy kiểm tra "Trình xem sự kiện" -> "Ứng dụng". Lỗi như vậy có thể xảy ra vì nhiều lý do khác nhau. Trong trường hợp của tôi một postgres đã được chạy. Tôi đã tìm ra thông tin đó trong Nhật ký Windows.

0

Tôi đã mắc lỗi trong postgresql.conf. Tôi đã làm

max_prepared_transactions = 16*max_connections # zero disables the feature 

nơi trước đây trong tập tin này có nghĩa là,

max_connections=100 

này không thể được thực hiện, và các công việc sau:

max_prepared_transactions = 1600 # zero disables the feature 
Các vấn đề liên quan