2013-07-23 34 views
24

Tôi đã cài đặt Postgresql và sau đó chạy một loạt các ứng dụng đường ray trên Mac OSX Mountain Lion cục bộ của tôi và tạo cơ sở dữ liệu. pgAdminIII và cố gắng để khởi động một máy chủ cơ sở dữ liệu tôi đã nhận lỗi này:Postgres DB không khởi động trên Mac OSX: ERROR cho biết: các kết nối trên ổ cắm miền Unix

enter image description here

một google nhanh chóng cho thấy this đường bưu điện. Nhiều trình duyệt hơn chỉ ra thực tế rằng có thể có một số loại tệp postmaster.pid nằm xung quanh đó có thể là nguyên nhân gốc rễ của việc này. Nếu tôi xóa mọi thứ sẽ ổn thôi.

Tuy nhiên, trước khi tôi xóa nội dung trên máy tính của mình, tôi muốn đảm bảo rằng Im gỡ lỗi này theo cách có hệ thống sẽ không gây ra nhiều sự cố hơn.

Somewhere I đọc rằng trước khi xóa tập tin đó, tôi cần phải chạy lệnh này:

ps auxw | grep post 

Nếu tôi không nhận được kết quả sau đó, OK của nó để xóa các tập tin. Khác không. Vâng, tôi nhận được kết quả này của lệnh đó:

AM    476 0.0 0.0 2423356 184 s000 R+ 9:28pm 0:00.00 grep post 

Vì vậy, bây giờ tất nhiên Im bị nhầm lẫn.

Vì vậy, tôi nên làm gì?

Dưới đây là một phần của postgres log lỗi máy chủ của tôi:

FATAL: lock file "postmaster.pid" already exists 
HINT: Is another postmaster (PID 171) running in data directory "/usr/local/var/postgres"? 

PostgreSQL vẫn không chạy, vẫn nhận được lỗi tương tự và không có gì đã thay đổi. Im quá gà để xóa mọi thứ mà không kiểm tra trên SO.

Có thể một số chuyên gia của bạn vui lòng hướng dẫn một noob.

Cảm ơn

+0

Trước tiên, tôi không phải là chuyên gia. Với điều đó, có vẻ như, cơ sở dữ liệu của bạn đã không tắt đúng cách. Tôi sẽ loại bỏ các tập tin pid và cố gắng để bắt đầu cơ sở dữ liệu. – fbynite

+0

Yeah thats những gì tôi muốn làm, nhưng tôi đọc ở đâu đó rằng điều này có thể gây ra thiệt hại vĩnh viễn cho cơ sở dữ liệu nếu một pid đang chạy trong khi điều này được thực hiện. Bạn không chắc chắn điều đó là gì về – banditKing

+0

@banditKing Bạn sẽ không bao giờ phải xóa 'postmaster.pid'. Máy chủ sẽ xóa nó khi khởi động nếu nó không hợp lệ (cũ) và điều quan trọng là bảo vệ dữ liệu. Xin vui lòng ** giải thích làm thế nào bạn cài đặt PostgreSQL trên máy tính của bạn ** để bắt đầu - thông qua trình cài đặt EnterpriseDB, homebrew, Postgres.app, cái gì? Cũng đề cập đến phiên bản PostgreSQL. Cuối cùng, nếu bạn thêm một cách rõ ràng "localhost" vào các tùy chọn kết nối trong Pgadmin-III nó có hoạt động không? Nếu vậy, bạn đang bị cắn bởi một quyết định đóng gói thực sự tồi tệ của Apple đã thực hiện một lúc trước ... –

Trả lời

13

Tôi hiện có cơ sở dữ liệu.

Dưới đây là các bước tôi đã:

  1. tôi khởi động lại máy tính của tôi
  2. tôi mở terminal và chạy cd /
  3. Sau đó, tôi đã làm ls -la
  4. Đảm bảo rằng tôi có thể có được để MackintoshHD/usr/local/var/postgres
  5. Sau đó, đã làm ls -la
  6. Ở đây tôi đã thấy bưu điện. tệp pid
  7. Tôi đã chạy lệnh này cp postmaster.pid ~/Desktop đã sao chép tệp vào máy tính để bàn của tôi. Tôi muốn thực hiện việc này nếu tôi xóa tệp. Nếu một cái gì đó không sai tôi có thể đặt nó trở lại
  8. Sau đó, tôi chạy lệnh này để loại bỏ các tập tin từ thư mục postgres rm -r postmaster.pid
  9. tôi đến gui pgadmin3 tôi và bắn nó lên.và Voila nó làm việc :)

Nhờ @Craig Ringer sự giúp đỡ của ông

+1

Tôi không có trong/usr/local/var/postgres nhưng trong/Users/[myhome]/Library/Application Support/Postgres/var-9.5/- thư mục cuối cùng phụ thuộc vào phiên bản của bạn, đã xóa postmaster.pid và làm việc như một sự quyến rũ , cảm ơn bạn – Radek

16

Điều này thường xảy ra nếu cơ sở dữ liệu đã không được tắt đúng cách.

Xóa file postmaster.pid:

rm /usr/local/var/postgres/postmaster.pid 

Hoặc, lưng nó lên:

mv /usr/local/var/postgres/postmaster.pid /usr/local/var/postgres/postmaster.pid.backup 
+1

Cảm ơn, giải pháp này hoạt động! Sau khi xóa 'postmaster.pid' và chạy' postgres -D/usr/local/var/postgres', nó sẽ thông báo cho tôi về nguyên nhân lỗi: "hệ thống cơ sở dữ liệu không được tắt đúng cách; tự động khôi phục" –

55

tôi đã cùng một vấn đề ngày hôm nay trên Mac Serria. Trong Mac Serria bạn có thể tìm postmaster.pid bên /Users/<user_name>/Library/Application Support/Postgres/var-9.6

+4

Đã xóa 'postmaster. pid' ở vị trí này và sự cố đã được khắc phục. Cảm ơn! – JLF

+1

Đây cũng là nơi tôi cần tìm tệp 'postmaster.pid' vì tôi đang sử dụng Postgres.app – Jarsen

-1

Tôi đang sử dụng Postgres.app, và dưới đây làm việc cho tôi:

tôi bước vào các lệnh vào terminal của tôi dưới đây, định vị thư mục Postgres trước và không sử dụng " justin ".

$declare -x PGDATA="/Users/justin/Library/Application Support/Postgres/var-9.4" 

$pg_ctl restart -m immediate 

Như Justin giải thích trong bài viết của mình, đầu ra sau này là:

waiting for server to shut down……………………………………………………… failed pg_ctl: server does not shut down

Sau khi nhập lệnh một lần nữa:

$pg_ctl restart -m immediate 

Nó làm việc và tôi đã nhận tin nhắn này:

pg_ctl: old server process (PID: 373) seems to be gone starting server anyway server starting LOG: database system was interrupted; last known up at 2015-07-28 18:15:26 PDT LOG: database system was not properly shut down; automatic recovery in progress LOG: record with zero length at 0/4F0F7A8 LOG: redo is not required LOG: database system is ready to accept connections LOG: autovacuum launcher started

Source

Các vấn đề liên quan