Không thể kết nối với PostgreSQL cục bộ


124

Tôi đã xoay sở để làm hỏng môi trường phát triển địa phương của tôi.

Tất cả các ứng dụng Rails cục bộ của tôi hiện đang đưa ra lỗi:

PGError
could not connect to server: Permission denied
    Is the server running locally and accepting
    connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?

Tôi không biết điều gì đã gây ra điều này.

Trong khi tìm kiếm giải pháp tôi đã cập nhật tất cả các loại đá quý được đóng gói, đá quý hệ thống được cập nhật, MacPorts được cập nhật. Không có niềm vui.

Những người khác đã báo cáo vấn đề này khi nâng cấp từ OSX Leopard lên Lion, do nhầm lẫn về việc nên sử dụng phiên bản Postgres nào (ví dụ: phiên bản OSX hoặc phiên bản MacPorts). Tôi đã chạy Lion được vài tháng, vì vậy có vẻ lạ là điều này sẽ xảy ra ngay bây giờ.

Tôi miễn cưỡng loay hoay quá nhiều mà không hiểu vấn đề là gì. Làm thế nào tôi có thể gỡ lỗi này một cách có phương pháp?

Làm cách nào tôi có thể xác định có bao nhiêu phiên bản PostgreSQL trên hệ thống của tôi, phiên bản nào đang được truy cập và vị trí của nó? Làm cách nào để khắc phục điều này nếu PostgreSQL sai đang được sử dụng?

Xin lỗi cho các câu hỏi của Noob. Tôi vẫn đang học cách nó hoạt động! Cảm ơn cho bất kỳ con trỏ.

BIÊN TẬP

Một số cập nhật dựa trên đề xuất và ý kiến ​​dưới đây.

Tôi đã cố chạy pg_lsclustersmà trả về một command not foundlỗi.

Sau đó, tôi đã cố gắng cục bộ tệp pg_hba.conf của mình và tìm thấy ba tệp mẫu này:

/opt/local/share/postgresql84/pg_hba.conf.sample
/opt/local/var/macports/software/postgresql84/8.4.7_0/opt/local/share/postgresql84/pg_hba.conf.sample
/usr/share/postgresql/pg_hba.conf.sample

Vì vậy, tôi giả sử 3 phiên bản PSQL được cài đặt? Macports, OSX mặc định và ???.

Sau đó tôi đã thực hiện tìm kiếm tập lệnh khởi động launchctl ps -ef | grep postgresđã trả về

0    56     1   0 11:41AM ??         0:00.02 /opt/local/bin/daemondo --label=postgresql84-server --start-cmd /opt/local/etc/LaunchDaemons/org.macports.postgresql84-server/postgresql84-server.wrapper start ; --stop-cmd /opt/local/etc/LaunchDaemons/org.macports.postgresql84-server/postgresql84-server.wrapper stop ; --restart-cmd /opt/local/etc/LaunchDaemons/org.macports.postgresql84-server/postgresql84-server.wrapper restart ; --pid=none
  500   372     1   0 11:42AM ??         0:00.17 /opt/local/lib/postgresql84/bin/postgres -D /opt/local/var/db/postgresql84/defaultdb
  500   766   372   0 11:43AM ??         0:00.37 postgres: writer process                                                                                                                                                                                                                                                                                                                   
  500   767   372   0 11:43AM ??         0:00.24 postgres: wal writer process                                                                                                                                                                                                                                                                                                               
  500   768   372   0 11:43AM ??         0:00.16 postgres: autovacuum launcher process                                                                                                                                                                                                                                                                                                      
  500   769   372   0 11:43AM ??         0:00.08 postgres: stats collector process                                                                                                                                                                                                                                                                                                          
  501  4497  1016   0 12:36PM ttys000    0:00.00 grep postgres

Tôi đã đăng nội dung của postgresql84-server.wrapper tại http://pastebin.com/Gj5TpP62 .

Tôi đã cố chạy port load postgresql184-servernhưng nhận được một lỗi Error: Port postgresql184-server not found.

Tôi vẫn rất bối rối làm thế nào để khắc phục điều này, và đánh giá cao bất kỳ con trỏ "cho người giả" nào.

Cảm ơn!

EDIT2

Vấn đề này bắt đầu sau khi tôi gặp một số vấn đề với daemondo. Các ứng dụng Rails cục bộ của tôi đã gặp sự cố với lỗi ứng dụng dọc theo dòng "không thể tìm thấy đá quý daemondo". Sau đó tôi đã trải qua một loạt các bản cập nhật gói, cập nhật đá quý, cập nhật cổng và cập nhật bia để thử và tìm ra vấn đề.

Lỗi này có thể là một vấn đề với daemondo?


Lưu ý rằng khi ứng dụng của bạn kết nối, nó sẽ kết nối qua cổng tcp thay vì ổ cắm miền unix. Vì vậy, bạn cần cấu hình postgres để chấp nhận kết nối mạng, ít nhất là từ localhost.
Paul Tomblin

Tại sao bạn lại tin như vậy? Rõ ràng các trình điều khiển đang cố gắng kết nối thông qua ổ cắm Unix. Mặc dù họ tìm ổ cắm ở sai vị trí.
Milen A. Radev


Chính xác. Nó dường như là một điều mac. OP có thể sử dụng cờ -h, sau khi xác minh rằng bưu điện đang chạy.
wildplasser

Xin vui lòng gửi đầu ra pg_lsclusterspg_hba.conftập tin của bạn .
tscho

Câu trả lời:


66

Điều này thực sự trông giống như một lỗi quyền truy cập tập tin. Ổ cắm tên miền Unix là các tệp và có quyền của người dùng giống như bất kỳ loại nào khác. Dường như người dùng OSX cố gắng truy cập cơ sở dữ liệu không có quyền truy cập tệp để truy cập tệp ổ cắm. Để xác nhận điều này, tôi đã thực hiện một số thử nghiệm trên Ubuntu và psql để cố gắng tạo ra cùng một lỗi (bao gồm bên dưới).

Bạn cần kiểm tra các quyền trên tệp socket và các thư mục của nó /var/var/pgsql_socket. Ứng dụng Rails của bạn (người dùng OSX) phải có quyền thực thi (x) trên các thư mục này (tốt nhất là cấp cho mọi người quyền) và ổ cắm phải có đầy đủ quyền (wrx). Bạn có thể sử dụng ls -lAd <file>để kiểm tra những cái này, và nếu bất kỳ trong số chúng là một liên kết tượng trưng, ​​bạn cần kiểm tra tệp hoặc chuyển các liên kết trỏ đến.

Bạn có thể thay đổi các quyền trên thư mục cho chính mình, nhưng ổ cắm được cấu hình bởi postgres in postgresql.conf. Điều này có thể được tìm thấy trong cùng thư mục với pg_hba.conf(Bạn sẽ phải tìm ra cái nào). Khi bạn đã đặt quyền, bạn sẽ cần khởi động lại postgresql.

# postgresql.conf should contain...
unix_socket_directory = '/var/run/postgresql'       # dont worry if yours is different
#unix_socket_group = ''                             # default is fine here
#unix_socket_permissions = 0777                     # check this one and uncomment if necessary.

BIÊN TẬP:

Tôi đã thực hiện một tìm kiếm nhanh trên google mà bạn có thể muốn xem xét xem nó có liên quan không. Điều này cũng có thể dẫn đến bất kỳ nỗ lực nào cho findtập tin cấu hình của bạn không thành công.

http://www.postgresqlformac.com/server/howto_edit_postgresql_confi.html


Thông báo lỗi:

Không tìm thấy người dùng trong pg_hba.conf

psql: FATAL:  no pg_hba.conf entry for host "[local]", user "couling", database "main", SSL off

Mật khẩu người dùng không thành công auth:

psql: FATAL:  password authentication failed for user "couling"

Thiếu tệp ổ cắm unix:

psql: 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"?

Ổ cắm Unix tồn tại, nhưng máy chủ không nghe nó.

psql: could not connect to server: Connection refused
    Is the server running locally and accepting
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

Quyền truy cập tệp xấu trên tệp ổ cắm unix :

psql: could not connect to server: Permission denied
    Is the server running locally and accepting
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

1
cảm ơn vì những ý tưởng này @couling. Điều này cảm thấy như đúng hướng. Nhưng có một cái gì đó rất lạ với thiết lập của tôi. Hãy nhớ rằng điều này đã hoạt động hoàn hảo cho đến gần đây. Tôi đã xem qua ba thư mục postgres trên hệ thống của mình, tất cả chúng đều chứa các tệp conf.sample (pg_hba, pg_ident, pg_service, v.v.) nhưng không có tệp .conf. Điều này không nên là trường hợp, đúng không? Ngoài ra, thư mục nên chứa .s.PGSQL.5432 trống. Thay vào đó, tôi có một tệp nằm ở /private/tmp/.s.PGSQL.5432.lock. PStrả về các quá trình postgres để nó đang chạy. Bối rối!
Andy Harvey

Tôi đã thêm một liên kết bổ sung. Theo như tôi biết, bạn thực sự không thể có postgresql mà không có postgresql.conf (ngay cả khi nó được đổi tên). Nhiệm vụ đầu tiên của bạn phải là tìm thấy điều này.
Philip Couling

1
phải mất một thời gian để duyệt qua các thư mục của tôi và tìm đúng tệp, nhưng đây thực sự là vấn đề. Cảm ơn câu trả lời rất chi tiết. Khi tôi tìm thấy thư mục chính xác, tôi cần thiết lập thư mục socket, thư mục dữ liệu, hba_file và ID_file trong postgresql.conf. Cảm ơn bạn!
Andy Harvey

1
Có thể giúp một số người: Tôi đã sử dụng brew để cài đặt postgres trong tài khoản của mình. Trong trường hợp của tôi, hóa ra thư mục / var / pssql_socket / được sở hữu bởi người dùng _postgres và việc thay đổi quyền sở hữu thành tài khoản của tôi (darren) đã khắc phục vấn đề này. Không chắc chắn tại sao brew không đặt quyền sở hữu chính xác của thư mục này ngay từ đầu ...?
Darren Jensen

Cảm ơn bạn couling. Tôi không thể kết nối và thiết lập unix_socket_directory là điều nên làm.
Ryan Bigg

41

Cảm giác ruột của tôi là đây (một lần nữa) là một thứ mac / OSX: mặt trước và mặt sau giả định một vị trí khác cho ổ cắm tên miền unix (có chức năng như một điểm hẹn ).

Danh mục:

  • Là postgres đang chạy: ps aux | grep postgres | grep -v grepnên thực hiện các mẹo
  • Ổ cắm được đặt ở đâu: find / -name .s.PGSQL.5432 -ls(ổ cắm được sử dụng trong / tmp; bạn có thể bắt đầu tìm ở đó)
  • ngay cả khi bạn định vị ổ cắm (tên miền unix), máy khách có thể sử dụng một vị trí khác. (điều này xảy ra nếu bạn trộn các bản phân phối hoặc trong số bạn có bản phân phối được cài đặt ở đâu đó và có bản cài đặt khác (ví dụ từ nguồn) ở nơi khác), với máy khách và máy chủ sử dụng các địa chỉ điểm hẹn khác nhau .

Nếu postgres đang chạy và ổ cắm thực sự tồn tại, bạn có thể sử dụng:

  • psql -h /the/directory/where/the/socket/was/found mydbname

(cố gắng kết nối với ổ cắm tên miền unix)

; Bây giờ bạn sẽ nhận được lời nhắc psql: thử \dvà sau đó \qthoát. Bạn cũng có thể thử:

  • psql -h localhost mydbname.

(cố gắng kết nối với localhost (127.0.0.1)

Nếu những lần thử này thất bại vì không đủ ủy quyền, bạn có thể thay đổi pg_hba.conf (và SIGHUP hoặc khởi động lại) Trong trường hợp này: cũng kiểm tra nhật ký.

Một câu hỏi tương tự: Không thể bắt đầu Postgres

Lưu ý: Nếu bạn có thể đến dấu nhắc psql, cách khắc phục nhanh vấn đề này chỉ là thay đổi config/database.yml, thêm:

host: localhost

hoặc bạn có thể thử thêm:

host: /the/directory/where/the/socket/was/found

Trong trường hợp của tôi, host: /tmp


1
@wildplasser cảm ơn câu trả lời của bạn. Điều này khiến tôi bắt đầu đi đúng hướng và câu trả lời chi tiết của couling đã đưa ra giải pháp.
Andy Harvey

6
Thêm máy chủ: localhost vào cơ sở dữ liệu của tôi.yml đã khắc phục sự cố của tôi. Cảm ơn :)
Automatico

1
của tôi là trong / private / .... sự kỳ lạ. Tôi đã cài đặt nó, nhưng máy tính xách tay này đã có vấn đề quá trước đây. Kỳ dị. cơ sở dữ liệu đó.yml là chìa khóa!
pjammer

4
Kỳ dị. Thêm "localhost" vào cơ sở dữ liệu của tôi.yml cũng hoạt động nhưng tại sao vậy? Tôi đã không có điều đó trước đây và mọi thứ đều hoạt động tốt. Nhưng tôi không nghĩ rằng tôi đã thêm bất cứ thứ gì muộn và đột nhiên nó đã như vậy rồi. > _ <
chỉ mục

1
mẹo cho tôi ở đây là đường dẫn socket - nó nằm trong / run not / var / run - cảm ơn!
qodeninja

26

Hãy thử gỡ cài đặt pg gem ( gem uninstall pg) sau đó cài đặt lại - nếu bạn sử dụng trình đóng gói, thì bundle install, khác gem install pg. Ngoài ra, hãy đảm bảo đường dẫn chọn đúng phiên bản: Lion có phiên bản posgresql (phiên bản trước không) và nó có thể nằm trong đường dẫn trước phiên bản được cài đặt cục bộ của bạn (ví dụ: MacPorts, homebrew).

Trong trường hợp của tôi: cài đặt homebrew của postgresql, cập nhật postgresql, rails, v.v. và sau đó gặp lỗi này. Gỡ cài đặt và cài đặt lại đá quý pg đã làm điều đó cho tôi.


8
pg exec gem pristine pg <== cũng sẽ thực hiện thủ thuật
Ben Walding

Tôi không nghi ngờ rằng lỗi của OP có thể được gây ra bởi bất kỳ số lượng nào, nhưng đây là giải pháp hiệu quả với tôi.
redhotvengeance

20

Vị trí của tệp ổ cắm được nướng vào đá quý tại thời gian biên dịch. Vì vậy, bạn cần phải xây dựng lại đá quý pg của bạn.

gem pristine pg
# or
bundle exec gem pristine pg

Điều này sẽ giải quyết vấn đề cụ thể đó.


Tôi bắt đầu nhận được vấn đề được mô tả trong câu hỏi này sau khi nâng cấp Postgres từ 9,1 lần lên 9,3 lần. Câu trả lời này đã sửa nó cho tôi (cũng đã thêm 'localhost' vào cơ sở dữ liệu của tôi, nhưng tôi thích cách tiếp cận này tốt hơn).
Joshua Flanagan

16

Nếu bạn gặp một lỗi tương tự:

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"?

Điều này có thể thực hiện các mẹo (nó đã làm cho tôi):

initdb /usr/local/var/postgres -E utf8

Thư mục được chỉ định sẽ khác nếu bạn không sử dụng OSX / Brew.

Lưu ý: Đây không phải là thông báo lỗi chính xác được thấy ở trên, nhưng chủ đề này là kết quả đầu tiên cho thông báo lỗi đó.


6
Tôi luôn luôn gặp phải vấn đề này mọi lúc, nhưng đây là lần đầu tiên tôi giải quyết nó bằng giải pháp NÀY. Ngoài ra, phải rm -fr /usr/local/var/postgrestrước khi chạyinitb
Raf

1
Sau khi tôi làm điều này (cả của Neal và Raf), tôi nhận được cơ sở dữ liệu "Fatal" không tồn tại lỗi. Vì vậy, sau đó chạy "rake db: created: all" và "rake db: di chuyển" và cuối cùng mọi thứ đã hoạt động trở lại.
Deborah

Tôi cũng phải làm rm -rf /usr/local/var/postgresrồi initdb /usr/local/var/postgres -E utf8. Nhưng hãy chắc chắn rằng postgres không chạy khi bạn làm điều này, nếu không thư mục sẽ được tạo lại gần như ngay lập tức.
Josh W Lewis

8

Điều đã giải quyết lỗi này đối với tôi là xóa một tệp có tên postmaster.pid trong thư mục postgres. vui lòng xem câu hỏi / câu trả lời của tôi bằng cách sử dụng liên kết sau để biết hướng dẫn từng bước. vấn đề của tôi không liên quan đến quyền tập tin:

psql: không thể kết nối với máy chủ: Không có tệp hoặc thư mục như vậy (Mac OS X)

Mặc dù vậy, những người trả lời câu hỏi này đã bỏ rất nhiều trò chơi, cảm ơn vì điều đó! tôi ủng hộ tất cả những gì tôi có thể


Vì câu trả lời được chấp nhận ở đây lưu ý vấn đề về quyền của tệp, nên có vẻ như bài đăng của bạn và bài này không liên quan.
Andrew Barber

7

Đây là cách tôi giải quyết thông báo lỗi đó, một phần dựa trên câu trả lời của người hoang dã.

find / -name .s.PGSQL.5432 -ls 2> /dev/null
  => ... /tmp/.s.PGSQL.5432

Vì vậy, có ổ cắm của tôi hoặc bất cứ điều gì, nhưng khách hàng tìm kiếm tại:

/var/run/postgresql/.s.PGSQL.5432

Vì vậy, khá đơn giản là tạo một liên kết tượng trưng đến /tmp/.s.PGSQL.5432:

sudo ln -s /tmp/.s.PGSQL.5432 /var/run/postgresql/.s.PGSQL.5432

Hy vọng điều này sẽ giúp cho bất cứ ai. Các loại có vẻ sai, nhưng hey, nó hoạt động!


1
Điều này làm việc cho tôi: sudo ln -s /tmp/.s.PGSQL.5432 /var/pgsql_socket/.s.PGQuery.5432
ardochhigh

Thanx :) Điều này đã giúp. Nhưng trước khi tạo symlink, đừng quên tạo sudo mkdir /var/run/postgresqlthư mục (trong trường hợp của tôi id không tồn tại và không được trình cài đặt tạo cho pg 9.3.X).
kovpack

2
Ồ, giải pháp này hóa ra là giải pháp 'một lần' mà tôi phải làm lại sau mỗi lần khởi động lại. Đối với Rails tôi đã tìm thấy giải pháp khác - sửa đổi tệp cấu hình cơ sở dữ liệu (thêm câu trả lời bên dưới).
kovpack

6

Tôi đã bắt đầu nhận được điều này sau khi nâng cấp lên một postgres mới - Tôi không nhận ra mình đã giữ các tệp dữ liệu.

Đầu tiên tôi đã thử khởi động máy chủ postgres:

postgres -D /usr/local/var/postgres

đó là cách tôi thấy lỗi này

FATAL:  database files are incompatible with server
DETAIL:  The data directory was initialized by PostgreSQL version 9.0, which is not compatible with this version 9.3.5.

Vì vậy, sau đó tôi tìm thấy câu trả lời này trên SO - liên quan đến lỗi không tương thích: /server/342626/how-do-i-upTHER-postgresl-database-incompabilities-error

Đây là những gì đã sửa nó

mv /usr/local/var/postgres /usr/local/var/postgres.old
initdb -D /usr/local/var/postgres

4

Chỉ cần xác nhận rằng tôi có một vấn đề tương tự trên PSQL và Django,

Trông giống như vì máy chủ psql của tôi không được tắt chính xác và tệp postmaster.pid vẫn còn (nên tự động xóa khi tắt máy đúng cách) trong thư mục postgres của tôi.

Đã xóa cái này và tất cả đều tốt


2
Đây là những gì giải quyết vấn đề cho tôi. Máy tính của tôi bị đóng băng và tôi phải tắt máy. Khi tôi bắt đầu sao lưu, postgres đã nói psql: could not connect to server: No such file or directory.Loại bỏ postmaster.pidkhỏi /usr/local/var/postgresmọi thứ hoạt động trở lại.
Ryan Epp

1
Đây cũng là những gì đã xảy ra với tôi. Máy mac của tôi khởi động lại vì hoảng loạn kernel và tôi đã phải xóa postmaster.pid trước khi hoạt động trở lại.
Ben

4

Tôi đã nhận được cùng một lỗi này (hóa ra đó là một lỗi với postmaster.pid. Đây là cách tôi đã đăng bài và chạy lại ( tín dụng cho Ricardo Burillo để sửa lỗi ):

$ rm /usr/local/var/postgres/postmaster.pid 
$ pg_resetxlog -f /usr/local/var/postgres

Điều này làm việc cho tôi, mặc dù pg_resetxlogtrả về `khóa tập tin" postmaster.pid ".
Elise

3

Tôi đã gặp vấn đề tương tự khi cố gắng sử dụng postgresql với đường ray. Cập nhật Gemfile của tôi để sử dụng phiên bản mới của gem pg giải quyết vấn đề này cho tôi. (phiên bản đá quý pg 0.16.0 hoạt động). Trong sử dụng Gemfile:

gem 'pg', '0.16.0'

sau đó chạy phần sau để cập nhật gem

bundle install --without production
bundle update
bundle install

1
Điều này đã khắc phục vấn đề cho tôi là tốt. Tôi đã sử dụng 0.15.1 từ phiên bản Rails 4.0 beta và hiện đang sử dụng Ruby 2.0.0. Khi tôi nâng cấp lên pg 0.16.0, sự cố đã được khắc phục.
bratsche

Đã giải quyết vấn đề cho tôi vào ngày 4.1.0.beta1
Andreas

3

Tôi đã đọc nhiều chủ đề về lỗi này và giải pháp cho tôi là chỉ cần khởi động lại các postgres bằng:

sudo service postgresql restart

Mà không được đề cập ở đây.


3
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"?

Tôi tìm kiếm giải pháp một lúc. Vì vậy, cái này cũng đã khắc phục vấn đề cho tôi (reinit db):

rm -r /usr/local/var/postgres  
initdb /usr/local/var/postgres -E utf8  
pg_ctl -D /usr/local/var/postgres -l logfile start

Tôi sử dụng OS X 10.11.3 với brew.


2

Điều này đã xảy ra với tôi hôm nay sau khi pin Macbook của tôi chết. Tôi nghĩ rằng điều này có thể được gây ra bởi tắt máy không đúng cách. Tất cả bạn phải làm trong trường hợp như của tôi là xóa postmaster.pid

Điều hướng đến thư mục

cd /usr/local/var/postgres

Kiểm tra xem postmaster.pid có mặt không

ls

Xóa postmaster.pid

rm postmaster.pid

2

Trong trường hợp của tôi không có giải pháp nào trước đây là tốt. Thay vì sử dụng socket, bạn có thể sử dụng số TCP host+ porttrong tệp cấu hình Rails. Vì vậy, trong database.ymltập tin chỉ cần thêm hai dòng như ở đây:

...
adapter: postgresql
encoding: unicode
pool: 5
host: localhost
port: 5432

Điều này đã giải quyết vấn đề của tôi :)

Trước khi tôi sử dụng sửa lỗi này:

sudo mkdir /var/run/postgresql
sudo ln -s /tmp/.s.PGSQL.5432 /var/run/postgresql/.s.PGSQL.5432

Nhưng sau mỗi lần khởi động lại /tmp/.s.PGSQL.5432đã bị xóa và tôi phải lặp lại các lệnh này. Giải pháp hoạt động, nhưng thật kinh khủng, vì vậy tốt hơn là chỉ sửa đổi tệp cấu hình cơ sở dữ liệu Rails :)


2

Đã xảy ra lỗi này khi tôi đang thiết lập Posgtres với Django, tôi đang sử dụng Back Track và nó được cài đặt Postgres. Tôi giả sử các thiết lập là vấn đề. Tôi đã sửa nó bằng cách gỡ bỏ nó hoàn toàn sau đó cài đặt lại như vậy.

sudo apt-get remove postgresql
sudo apt-get purge postgresql

Bây giờ chạy:

apt-get --purge remove postgresql\*

để xóa mọi thứ PostgreSQL khỏi hệ thống của bạn. Chỉ thanh trừng gói postgres là không đủ vì nó chỉ là một gói meta trống.

Khi tất cả các gói PostgreSQL đã bị xóa, hãy chạy:

rm -r /etc/postgresql/
rm -r /etc/postgresql-common/
rm -r /var/lib/postgresql/
userdel -r postgres
groupdel postgres

Bây giờ bạn có thể:

apt-get install postgresql

1

MacOSX đây. Tôi đã gặp vấn đề tương tự sau khi nâng cấp cài đặt postresql của tôi từ trước 9.1 lên 9.1.2 bằng cách sử dụng homebrew. (Nhân tiện, hãy nhớ kết xuất cơ sở dữ liệu trước khi nâng cấp với pg_dump, cơ sở dữ liệu trước 9.1 không tương thích.) Cùng một vấn đề, cùng một thông báo lỗi.

Gỡ cài đặt đá quý pg đã giúp tôi. Tôi thực sự đã phải nhảy khá nhiều để khám phá vấn đề. Đầu tiên tôi thực hiện gỡ cài đặt đá quý toàn cầu, xóa bộ bài của tất cả các viên đá quý cũ (có một vài). Sau đó, tôi xóa pg khỏi Gemfile của mình, khôi phục lại, khôi phục tham chiếu pg và bật lại một lần nữa.

Sau đó, nó hoạt động như một lá bùa.


1

Xin chào thế giới :)
Cách tốt nhất nhưng kỳ lạ đối với tôi là làm những việc tiếp theo.

1) Tải xuống postgres93.app hoặc phiên bản khác. Thêm ứng dụng này vào / Ứng dụng / thư mục.

2) Thêm một hàng (lệnh) vào tệp.bash_profile (trong thư mục chính của tôi):

xuất PATH = / Ứng dụng / Postgres93.app / Nội dung / MacOS / bin /: $ PATH
Đó là một ĐƯỜNG psqltừ Postgres93.app. Hàng (lệnh) chạy mỗi khi bảng điều khiển được khởi động.

3) Khởi chạy Postgres93.apptừ /Applications/thư mục. Nó khởi động một máy chủ cục bộ (cổng là "5432" và máy chủ là "localhost").

4) Sau tất cả các thao tác này, tôi rất vui khi chạy $ createuser -SRDP user_namevà các lệnh khác và để thấy rằng nó hoạt động! Postgres93.appcó thể được thực hiện để chạy mỗi khi hệ thống của bạn khởi động.

5) Ngoài ra nếu bạn muốn xem cơ sở dữ liệu của mình bằng đồ họa, bạn nên cài đặtPG Commander.app . Đó là cách tốt để xem DB postgres của bạn dưới dạng bảng dữ liệu đẹp

Tất nhiên, nó chỉ hữu ích cho máy chủ cục bộ. Tôi sẽ rất vui nếu hướng dẫn này giúp những người khác gặp phải vấn đề này.


0

Tôi gặp vấn đề này làm tôi khó chịu và sau khi điều tra thêm (đang chạy rake db:setup), tôi thấy rằng đường ray đang cố gắng kết nối với một cá thể postgres đã sử dụng trước đó - một biến được lưu trữ trong các biến env là DATABASE_URL.

Cách khắc phục: unset DATABASE_URL

nguồn: https://stackoverflow.com/a/17420624/2577622


0

Tôi đã thử hầu hết các giải pháp cho vấn đề này nhưng không thể làm việc được.

Tôi đã chạy lsof -P | grep ':5432' | awk '{print $2}'trong đó cho thấy PID của quá trình đang chạy. Tuy nhiên tôi không thể giết nó bằng kill -9 <pid>.

Khi tôi chạy pkill postgresqlquá trình cuối cùng đã dừng lại. Hi vọng điêu nay co ich.


0
gem uninstall pg

Trên OS X với Homebrew:

gem install pg -- --with-pg-config=/usr/local/bin/pg_config
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.