Postgres không thể kết nối với máy chủ


416

Sau khi tôi thực hiện cập nhật bia và nâng cấp bia, các bài đăng của tôi có một số vấn đề. Tôi đã cố gắng gỡ cài đặt postgres và cài đặt lại, nhưng nó cũng không hoạt động.

Đây là thông báo lỗi. (Tôi cũng đã nhận được thông báo lỗi này khi tôi cố gắng thực hiện rake db: di chuyển)

$ psql
psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

Làm thế nào tôi có thể giải quyết nó?

Phiên bản Mac: Sư tử núi.

phiên bản homebrew: 0.9.3

phiên bản postgres: psql (PostgreSQL) 9.2.1

Và đây là những gì tôi đã làm.

12:30 ~/D/works$ brew uninstall postgresql
Uninstalling /usr/local/Cellar/postgresql/9.2.1...
12:31 ~/D/works$ brew uninstall postgresql
Uninstalling /usr/local/Cellar/postgresql/9.1.4...
12:31 ~/D/works$ psql --version
bash: /usr/local/bin/psql: No such file or directory
12:33 ~/D/works$ brew install postgresql
==> Downloading http://ftp.postgresql.org/pub/source/v9.2.1/postgresql-9.2.1.tar.bz2
Already downloaded: /Library/Caches/Homebrew/postgresql-9.2.1.tar.bz2
......
......
==> Summary
/usr/local/Cellar/postgresql/9.2.1: 2814 files, 38M, built in 2.7 minutes
12:37 ~/D/works$ initdb /usr/local/var/postgres -E utf8
The files belonging to this database system will be owned by user "laigary".
This user must also own the server process.

The database cluster will be initialized with locale "en_US.UTF-8".
The default text search configuration will be set to "english".

initdb: directory "/usr/local/var/postgres" exists but is not empty
If you want to create a new database system, either remove or empty
the directory "/usr/local/var/postgres" or run initdb
with an argument other than "/usr/local/var/postgres".
12:39 ~/D/works$ mkdir -p ~/Library/LaunchAgents
12:39 ~/D/works$   cp /usr/local/Cellar/postgresql/9.2.1/homebrew.mxcl.postgresql.plist ~/Library/LaunchAgents/
12:39 ~/D/works$   launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
homebrew.mxcl.postgresql: Already loaded
12:39 ~/D/works$ pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
server starting
12:39 ~/D/works$ env ARCHFLAGS="-arch x86_64" gem install pg
Building native extensions.  This could take a while...
Successfully installed pg-0.14.1
1 gem installed
12:42 ~/D/works$ psql --version
psql (PostgreSQL) 9.2.1
12:42 ~/D/works$ psql
psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

Bây giờ, sau khi tôi cài đặt lại howbrew, khi tôi sử dụng $ psql, Nó không hiển thị bất kỳ thông báo lỗi nào.

Nhưng tôi chạy rake db:migratetrong ứng dụng rails của mình, nó hiển thị:

could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in `initialize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in `new'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in `connect'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:329:in `initialize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:28:in `new'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:28:in `postgresql_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:309:in `new_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:319:in `checkout_new_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:241:in `block (2 levels) in checkout'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:236:in `loop'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:236:in `block in checkout'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:233:in `checkout'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:96:in `block in connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:95:in `connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:404:in `retrieve_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_specification.rb:170:in `retrieve_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_specification.rb:144:in `connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:107:in `rescue in create_database'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:51:in `create_database'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:40:in `block (3 levels) in <top (required)>'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:40:in `each'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:40:in `block (2 levels) in <top (required)>'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:205:in `call'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:205:in `block in execute'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:200:in `each'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:200:in `execute'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:158:in `block in invoke_with_call_chain'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:151:in `invoke_with_call_chain'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:144:in `invoke'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:116:in `invoke_task'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:94:in `block (2 levels) in top_level'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:94:in `each'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:94:in `block in top_level'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:133:in `standard_exception_handling'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:88:in `top_level'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:66:in `block in run'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:133:in `standard_exception_handling'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:63:in `run'
/usr/local/bin/rake:32:in `<main>'
Couldn't create database for {"adapter"=>"postgresql", "encoding"=>"unicode", "database"=>"riy_development", "pool"=>5, "username"=>nil, "password"=>nil}

Cuối cùng tôi cũng tìm được giải pháp.

$ sudo mkdir /var/pgsql_socket/
$ sudo ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/

Giải pháp này hơi khó, nhưng nó hoạt động. Hy vọng ai có giải pháp tốt hơn

Cập nhật

Điều này làm việc cho tôi là tốt.

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

3
Tôi có vấn đề chính xác của bạn, nhưng giải pháp của bạn không hiệu quả với tôi. Tôi nghĩ rằng đây là một vấn đề về quyền nhưng tôi không có kiến ​​thức về quyền truy cập tệp để khắc phục nó.
ajbraus

Đối với những người cài đặt PG qua Homebrew và đang gặp vấn đề, tôi tìm thấy một câu trả lời khác. Chỉ cần gỡ cài đặt pg gem và cài đặt lại với cấu hình Homebrew. Xem câu trả lời tại stackoverflow.com/a/19609228/1072058 .
zquintana

câu trả lời tương tự ở đây - stackoverflow.com/questions/13573204/
VelLes

1
Bắt đầu postgres.
ATW

4
Nâng cấp phiên bản hiện tại của bạn lên phiên bản mới hơn bằng lệnh sau brew postgresql-upgrade-database

Câu trả lời:


799

Có một vấn đề tương tự; một tập tin pid đã chặn postgres khởi động. Để sửa chữa nó:

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

và sau đó tất cả đều tốt


4
Điều này làm việc cho tôi trên OSX Mavericks sau khi thấy vấn đề này khi cập nhật / khởi động lại.
eprothro

3
@jstafford cảm ơn, tôi đã giải quyết xong! :) Giải pháp là gỡ cài đặt qua homebew và sau đó khởi động lại máy tính của tôi ngay, vì vậy sau đó tôi sẽ có thể cài đặt lại postgres. Phiên bản cũ đã chạy trong nền, tạo các tệp và xung đột mỗi khi tôi cố gắng cài đặt lại postgres.
betoharres

199
Điều này không hiệu quả với tôi trên Mavericks:rm: /usr/local/var/postgres/postmaster.pid: No such file or directory
sscirrus

16
Điều này làm việc cho tôi, sau khi xóa tôi phải bắt đầu postgres. # pg_ctl -D / usr / local / var / postgres -l /usr/local/var/postgres/server.log bắt đầu
Ricardo Castañeda

12
Tôi khuyên bạn nên theo dõi nhật ký máy chủ để đảm bảo đây thực sự là vấn đề:tail /usr/local/var/postgres/server.log
Josh Bodah

255

Điều này đôi khi có thể là một vấn đề với nâng cấp postgres.

Trong trường hợp của tôi, nó đã xảy ra khi nâng cấp từ 9.3 lên 9.4.

Xem http://www.postgresql.org/docs/9.4/static/upgrad.html

Hệ điều hành X / Homebrew:

Hãy thử chạy postgres -D /usr/local/var/postgres- nó sẽ cung cấp cho bạn một đầu ra dài dòng hơn nhiều nếu postgres không bắt đầu.

Trong trường hợp của tôi, chạy rm -rf /usr/local/var/postgres && initdb /usr/local/var/postgres -E utf8 đã loại bỏ cơ sở dữ liệu cũ của tôi và sau đó khởi tạo lại lược đồ db postgres.

Cảm ơn https://github.com/Homebrew/homebrew/issues353240 cho giải pháp đó.

Sau khi tạo lại cơ sở dữ liệu của tôi (với rake db:create) mọi thứ hoạt động tốt trở lại.


1
Điều này làm việc cho tôi với một postgres cài đặt homebrew trên Yosemite.
cpursley

7
Nếu việc chạy postgres -D /usr/local/var/postgrescho bạn biết rằng thư mục dữ liệu đã được khởi tạo với phiên bản Postgres cũ hơn, không tương thích và bạn không muốn mất dữ liệu cục bộ của mình, bạn có thể thử chuỗi này
Nathan Long

Sau khi lệnh trên được chạy, tôi chạy: pg_ctl -D /usr/local/var/postgres -l logfile startvà sau đó máy chủ của tôi bắt đầu chạy nền
Tommyixi 11/2/2016

5
Sử dụng brew services start postgrestrên OSX để bắt đầu postgres trên nền thay vìpostgres -D /usr/local/var/postgres
Mike Andrianov

1
@coffekid Tôi cũng gặp vấn đề tương tự và đã sửa nó bằng các hướng dẫn ở đây: stackoverflow.com/questions/24379373/ mẹo
Micah Walter

68

Tìm thấy một giải pháp hiệu quả với tôi ở đây:

/dba/75214/psql-could-not-connect-to-server-no-such-file-or-directory

Về cơ bản, bạn chạy lệnh sau để tự khởi động máy chủ:

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start

8
Trong số tất cả các câu trả lời, đây là người duy nhất làm việc cho tôi. Sử dụng El Capitan
Patrick_870206

Tôi đã thử với cmd đó nhưng không làm việc cho tôi !!
Harshit Trivingi

41

Nếu việc cài đặt và gỡ cài đặt postgres bằng brew không phù hợp với bạn, hãy xem nhật ký cài đặt postgresql của bạn hoặc:

postgres -D /usr/local/var/postgres

nếu bạn thấy loại đầu ra này:

LOG:  skipping missing configuration file "/usr/local/var/postgres/postgresql.auto.conf"
FATAL:  database files are incompatible with server
DETAIL:  The data directory was initialized by PostgreSQL version 9.4, which is not compatible with this version 9.6.1.

Sau đó thử các cách sau:

rm -rf /usr/local/var/postgres && initdb /usr/local/var/postgres -E utf8

Sau đó khởi động máy chủ:

pg_ctl -D /usr/local/var/postgres -l logfile start

Nguồn


2
Điều đó hoạt động khi lý do khác với câu trả lời được chấp nhận, tức là các tệp cơ sở dữ liệu không tương thích với phiên bản hiện tại. Vì chính xác đó là vấn đề của tôi, tôi upvote.
Falk Schuetzenmeister

1
Lệnh này hoạt động với tôi.
Ccr

hoạt động cho Mojave 10.14.6
Sgryt87

34

Trên Yosemite, nếu tệp pid đang chặn Postgres bắt đầu và bạn có một launchctltrình nền cố gắng (và không thành công) để tải các trình nền cơ sở dữ liệu, thì bạn sẽ cần hủy tải tệp plist:

$ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

Sau đó loại bỏ tệp pid

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

Sau đó tải lại launchctldaemon

$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

28

Đối với bất kỳ ai đọc cái này và sử dụng Postgres.app, bạn có thể cần host: localhosttrong cơ sở dữ liệu của mình. http://postgresapp.com/documentation#toc_3


Làm điều này sẽ thay đổi kết nối từ ổ cắm sang kết nối TCP có thể có ý nghĩa tiêu cực. Xem stackoverflow.com/questions/6770649/ Mạnh
Brett Bim

1
Hmm, thực sự, nếu bạn downvote ... Có lẽ đừng nói tại sao? meta.stackoverflow.com/questions/252297/ Mạnh Hoặc có thể nói lý do tại sao, nhưng hãy đăng xuất trước để bạn ẩn danh.
David Winiecki

Tôi nghĩ rằng phiếu bầu giảm là vì câu hỏi ban đầu không dành cho Postgres.app mà là Homebrew. Vì vậy, trong khi câu trả lời có thể hữu ích ở đâu đó, nó không trả lời câu hỏi.
Brian thân mến

Liên kết dường như không đi đến đâu cụ thể (và tìm kiếm "localhost" trong quá khứ không có kết quả) nhưng điều này chỉ khắc phục sự cố cho tôi sau một giờ tìm kiếm.
Sixty4bit

25

Nâng cấp cơ sở dữ liệu cho tôi

brew postgresql-upgrade-database


AnkCảm ơn bạn Tomer! Điều này làm việc cho tôi 6/2/20 nâng cấp từ 9,4 lên 12 trên macOS Mojave 10.14.6
Rob Bednark

19
brew services start postgres 

đã làm cho tôi!


17

Kiểm tra xem các tập tin ổ cắm tồn tại.

$ ls -l /tmp/.s.PGSQL.5432
srwxrwxrwx  1 you  wheel  0 Nov 16 09:22 /tmp/.s.PGSQL.5432

Nếu không, hãy kiểm tra postgresql.conf của bạn để biết thay đổi unix_socket_directory.

$ grep unix_socket /usr/local/var/postgres/postgresql.conf
#unix_socket_directory = ''     # (change requires restart)
#unix_socket_group = ''         # (change requires restart)
#unix_socket_permissions = 0777     # begin with 0 to use octal notation

1
Đây là phản ứng máy tính của tôi. $ ls -l /tmp/.s.PGSQL.5432 ls: /tmp/.s.PGSQL.5432: No such file or directory $ grep unix_socket /usr/local/var/postgres/postgresql.conf #unix_socket_directory = '' # (change requires restart) #unix_socket_group = '' # (change requires restart) #unix_socket_permissions = 0777 # begin with 0 to use octal notation
Gary Lai

29
Cuối cùng tôi cũng tìm được giải pháp. $ mkdir /var/pgsql_socket/ $ sudo mkdir /var/pgsql_socket/ $ ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/Giải pháp này hơi khó, nhưng nó hoạt động. Hy vọng bất cứ ai có một giải pháp tốt hơn
Gary Lai

làm tốt lắm @GaryLai. Thật kỳ lạ khi tôi không phải làm điều tương tự với postgresql homebrew của mình
jrwren

2
điều này có thể giúp một số người ngoài kia: github.com/mxcl/homebrew/issues/14527
AdamT

14

Vấn đề cũng có thể được quy cho một quá trình bị lỗi khiến tập tin postmaster.pid bị bỏ lại phía sau. Tôi làm điều này và làm việc:

$ brew services stop postgresql
$ rm /usr/local/var/postgres/postmaster.pid # adjust path accordingly to your install
$ brew services start postgresql

10

Vấn đề là do đã có một dịch vụ đang chạy trên cổng 5432 và chúng tôi không thể thiết lập kết nối ổ cắm psql thông qua cổng này.

Tôi đã xóa tập tin ổ cắm

rm -rf /tmp/.s.PGSQL.5432/

Sau đó, tôi khởi động lại dịch vụ postgres

postgres -D /usr/local/var/postgres

Điều này làm việc cho tôi.


9

Cách chứng minh ngu ngốc nhất xung quanh việc này là làm

brew reinstall postgresql

Điều này sẽ giữ cho người dùng của bạn, vv tất cả nguyên vẹn và mọi thứ được đặt lại thành mới. Hoạt động mọi lúc!


làm việc như một nhà vô địch !!!! Đây là tất cả cần thiết.
Akash K

Điều này đã làm việc nhưng tôi khuyên nếu rm /usr/local/var/postgres/postmaster.pidtrên mac os không hoạt động thì hãy sử dụng lệnh này.
Yaseen Ahmad

7

Thay đổi cài đặt cấu hình postresql hoặc cơ sở dữ liệu.yml, thay đổi $ PATH hoặc tạo liên kết tượng trưng đều không cần thiết đối với tôi. Tất cả những gì tôi cần làm là gem uninstall pgvà sau đó bundle(hoặc gem install pg).

Vấn đề là đá quý pg đã được cài đặt trước các postgres homebrew, do đó, đã chọn các cài đặt từ phiên bản của postgres đi kèm với MacOS. Cài đặt lại nó (và do đó xây dựng lại tiện ích mở rộng gốc) đã khắc phục sự cố.


Chỉ muốn nói lời cảm ơn. Tôi vừa nâng cấp PostgresApp trên macOS và mặc dù tôi có thể kết nối bằng psql, tôi không thể kết nối qua đường ray. gỡ cài đặt và cài đặt lại đá quý pg chỉ là vé! :)
craig1410

7

Điều này xảy ra với tôi khi tôi nâng cấp từ 9.3.4 lên 9.5 vì cơ sở dữ liệu không tương thích mà không nâng cấp.

Tôi đã sử dụng pg_upTHER như sau:

Dừng bài

$ brew services stop postgresql

Nâng cấp cơ sở dữ liệu:

$ pg_upgrade \
   -d /usr/local/var/postgres \
   -D /usr/local/var/postgres9.5 \
   -b /usr/local/Cellar/postgresql/9.3.4/bin/ \
   -B /usr/local/Cellar/postgresql/9.5.0/bin/ \
   -v

Lưu trữ cơ sở dữ liệu cũ:

 $ mv /usr/local/var/postgres /usr/local/var/postgres9.3.save
 $ mv /usr/local/var/postgres9.5 /usr/local/var/postgres

Khởi động lại postgres:

 $ brew services start postgresql

Đá quý cập nhật (cho đường ray / hồ sơ hoạt động):

 $ gem uninstall pg
 $ gem uninstall activerecord-postgresql-adapter
 $ bundle install

Các hướng dẫn này cũng có tại collectiveidea.com/blog/archives/2016/01/08/ , và vẫn hoạt động cho tôi ngày hôm nay khi nâng cấp từ 9.4.0 lên 9.6.3. Tôi không cần phải làm gì với tệp .pid theo cách thủ công.
Jan Hettich

7

Đây thực sự là những gì bạn phải làm:

thay vào đó, bạn nên xem /usr/local/var/postgres/postmaster.pid

và sau đó nhìn vào dòng đầu tiên của tệp - đây là PID xấu

Chạy

ps aux | grep <PID>

ví dụ:

ps aux | grep 12345

sau đó làm

kill <PID>

ví dụ

kill 12345

Giả sử nó vẫn đang chạy

/superuser/553045/firth-lock-file-postmaster-pid-alpered-exists

đừng nghe câu trả lời được chấp nhận nó là xấu và sẽ làm hỏng dữ liệu của bạn !!!


Cảm ơn, điều này đã làm việc cho tôi. Xóa postmaster.pid trong câu trả lời được chấp nhận thực sự không đủ.
Abe Petrillo

4

Tùy chọn Psql

-h tên máy chủ --host = tên máy chủ

: Chỉ định tên máy chủ của máy mà máy chủ đang chạy. Nếu giá trị bắt đầu bằng dấu gạch chéo, nó được sử dụng làm thư mục cho ổ cắm tên miền Unix.

$ grep "port\|unix_socket" /etc/postgresql/9.1/main/postgresql.conf
port = 5433                                         # (change requires restart)
unix_socket_directory = '/var/run/postgresql'       # (change requires resta

$ netstat -nalp | grep postgres
unix  2      [ ACC ]     STREAM     LISTENING     106753   4349/postgres       /tmp/.s.PGSQL.5432
unix  2      [ ACC ]     STREAM     LISTENING     10377 1031/postgres       /var/run/postgresql/.s.PGSQL.5433

Chạy psql với tùy chọn -host

$ psql -p 5433 -h /var/run/postgresql

Không cần phải tạo một liên kết mềm


4

Đã gặp vấn đề này trên MacOS Sierra và khi chúng tôi chạy pg_ctl như được mô tả ở trên, chúng tôi đã gặp lỗi sau pg_ctl: no database directory specified and environment variable PGDATA unset. Vì vậy, chúng tôi đã làm theo các bước ở đây đã giải quyết vấn đề của chúng tôi, cụ thể là:

mkdir ~/.postgres

initdb ~/.postgres

pg_ctl -D ~/.postgres start


4

Nếu postgres được cài đặt bằng homebrew, bạn có thể khắc phục điều này bằng cách chạy:

brew link postgres


4

Nếu bạn tắt hệ thống của mình mà không thoát khỏi psql, postgres sẽ không xóa một số tệp.

Tôi không tìm thấy tệp postmaster.pid ở vị trí usr / local / var / postgres

Vì vậy, tôi đã làm như sau:

dịch vụ sản xuất bia bắt đầu postgresql

Lệnh trên sẽ cho phép bạn bắt đầu postgres


3

Tôi gặp vấn đề này sau khi cố gắng khôi phục / thả / tạo db trong khi các tiến trình khác đang truy cập chúng. Bản sửa lỗi MacOSX / Homebrew là:

  1. đóng tất cả các quá trình truy nhập khác rails server, rails console,guard , vv ...
  2. tải / dỡ tải bằng cách sử dụng các lệnh được tìm thấy trong brew info postgres
  3. chạy khôi phục / thả / tạo từ trước

3

FWIW điều này đã xảy ra với tôi ngày hôm nay, nhưng điều xảy ra là tôi đang chạy các bản cập nhật Ubuntu vào thời điểm đó, có khả năng đang cập nhật Postgres. Sau khi cập nhật hoàn tất, tôi có thể kết nối mà không gặp trở ngại nào.

Để hoàn thiện hơn, tôi đã cố gắng truy xuất các bản ghi từ cơ sở dữ liệu từ bảng điều khiển Rails:

development (main):0 > a = MyModel.find 73694
PG::ConnectionBad: could not connect to server: No such file or directory
        Is the server running locally and accepting
        connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

3

Có vẻ như psql của bạn không chạy. Bạn nên chạy nó trước khi kết nối. Bạn chỉ có thể làm điều đó bằng Postgres.app cho Mac OS. (Tải xuống và cài đặt ứng dụng này http://postgresapp.com ) Mở ứng dụng và bạn đã có máy chủ PostgreQuery sẵn sàng và chờ kết nối mới. Đóng ứng dụng và máy chủ tắt. Bạn cũng có thể tìm thấy thông tin này tại đây http://www.postgresql.org/doad/macosx/ . Hy vọng điều này sẽ giúp bạn.


1
Mặc dù liên kết này có thể trả lời câu hỏi, tốt hơn là bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo. Câu trả lời chỉ liên kết có thể trở nên không hợp lệ nếu trang được liên kết thay đổi.
Kmeixner

Câu hỏi được đề cập cụ thể đến cài đặt homebrew chứ không phải cài đặt Postgres.app. Mặc dù câu trả lời này rất hữu ích, nhưng nó không trả lời câu hỏi. Nó sẽ giống như nói "Sử dụng MySQL thay thế."
Brian thân mến

3

Đó là bởi vì một máy chủ trước đó vẫn đang chạy, hãy thử đóng mọi thứ lại và chạy lại ứng dụng của bạn.


3

Đối với những người sử dụng lệnh này và không hoạt động hoặc tệp không có ở đó và đang sử dụng Ruby on Rails

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

Hoặc bất kỳ lệnh nào khác và cứ tiếp tục thất bại.

Tôi đã giải quyết vấn đề này khi gỡ cài đặt với Brew. Tôi đã phải gỡ cài đặt với brew 2 lần, bởi vì ở lần gỡ cài đặt đầu tiên, sẽ vẫn còn một phiên bản khác của postgresql, với lần gỡ cài đặt thứ hai, quá trình sẽ hoàn tất.

Cài đặt postgresql với Brew

Sau đó thả, tạo và di chuyển các cơ sở dữ liệu của dự án

(Đừng quên khởi động máy chủ postgresql)


3

Tôi gặp vấn đề tương tự vì tôi đang sử dụng sai tên người dùng của Postgres trong mã. Tôi đăng nhập vào postgres psql -d postgresvà nhập\du để nhận tên vai trò và sửa tên người dùng của Postgres.

Vì vậy, khi các bạn đối mặt với vấn đề này, các bạn cần đảm bảo rằng bạn đang sử dụng đúng tên người dùng, mật khẩu, tên máy chủ và cơ sở dữ liệu ...

Hy vọng điều này sẽ giúp được bất cứ ai


3

Recent Gần đây bạn có thay đổi pg_hba.conf không? nếu bạn đã kiểm tra bất kỳ lỗi đánh máy nào trong:

"cục bộ" chỉ dành cho kết nối ổ cắm tên miền Unix

tất cả mật khẩu

Kết nối cục bộ IPv4:

lưu trữ tất cả mật khẩu 127.0.0.1 / 32

Kết nối cục bộ IPv6:

lưu trữ tất cả :: mật khẩu 1/128

Đôi khi một sai lầm đơn giản có thể khiến chúng ta đau đầu. Tôi hy vọng sự giúp đỡ này và xin lỗi nếu tiếng Anh của tôi không tốt chút nào.


3

Điều này xảy ra khi máy chủ postgres không chạy. Các bước để cài đặt đúng Postgres qua Homebrew trên MAC:

  1. brew install postgres

  2. initdb /Users/<username>/db -E utf8 [Điều này khởi tạo postgres để sử dụng thư mục đã cho làm thư mục cơ sở dữ liệu. Thông thường không nên sử dụng thư mục người dùng để lưu trữ cơ sở dữ liệu. Chỉnh sửa tệp sudoers để thêm initdb và các lệnh tương tự, sau đó chạy initdb trên / usr / local / var / postgres]

  3. pg_ctl -D /Users/<username>/db -l logfile start [Sau khi nhận được thành công với bước 2, nó sẽ nhắc chạy bước 3. Lệnh này tự khởi động máy chủ.]


2

Tôi đã nhận được lỗi tương tự. Hóa ra postgres hoàn toàn không chạy (nó thường luôn chạy ở chế độ nền, nhưng vì lý do gì đó không phải là ngày hôm nay).

Nếu đây là trường hợp, chỉ cần gõ postgresvào dòng lệnh của thư mục dự án của bạn


2

Sau một số lượng lớn qua lại, nó thực sự đã chuyển sang pgphiên bản đá quý tôi đang sử dụng. Trên mavericks, pgphiên bản 0.15.1sẽ không kết nối với cổng 5432 nhưng phiên bản 0.17.1hoạt động tốt - rất kỳ quặc.

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.