programing

PostgreSQL 오류 '서버에 연결할 수 없음:해당 파일 또는 디렉터리가 없습니다.'

testmans 2023. 5. 15. 21:23
반응형

PostgreSQL 오류 '서버에 연결할 수 없음:해당 파일 또는 디렉터리가 없습니다.'

다른 사람들처럼 프로젝트에서 rake db:migrate를 실행하거나 Ruby on Rails 3.2 응용프로그램에 대한 대부분의 데이터베이스 작업을 시도할 때 이 오류가 발생합니다.

PGE 오류(서버에 연결할 수 없음:해당 파일 또는 디렉터리가 없습니다.서버가 로컬에서 실행되고 UNIX 도메인 소켓 "/tmp/.s"에서 연결을 허용합니까?PGSQL.5432"?

Postgre를 설치했습니다.오래 전에 Homebrew를 사용한 SQL과 최근에 MongoDB를 설치하려고 시도한 후에 나의 PostgreSQL 설치가 이전과 같지 않습니다.OS X v10.6 Snow Leopard를 실행하고 있습니다.

무엇이 문제이고 어떻게 하면 Postgre를 더 잘 이해할 수 있습니까?SQL이 Mac에 설치되어 있어야 합니까?

지금까지 (내 생각에) 이것은 포스그레가SQL이 실행되고 있지 않습니다(?).

ps -aef|grep postgres                                                                                                   (ruby-1.9.2-p320@jct-ana) (develop) ✗
  501 17604 11329   0   0:00.00 ttys001    0:00.00 grep postgres

하지만 이 말이 포스그리가SQL이 실행되고 있습니까?

✪ launchctl load -w /usr/local/Cellar/postgresql/9.1.4/homebrew.mxcl.postgresql.plist                                                        (ruby-1.9.2-p136) 
homebrew.mxcl.postgresql: Already loaded

이거 어떻게 고쳐요?내가 보지 못하는 것은 무엇입니까?

PS:~/Library/LaunchAgents에는 두 개의 PostgreSQL .plist 파일이 포함되어 있습니다.나는 그것이 관련이 있는지 확실하지 않습니다.

org.postgresql.postgres.plist
homebrew.mxcl.postgresql.plist

저는 아래와 같이 시도했고 아래와 같은 결과를 얻었습니다.

psql -p 5432 -h localhost

psql: could not connect to server: Connection refused
    Is the server running on host "localhost" (127.0.0.1) and accepting
    TCP/IP connections on port 5432?
could not connect to server: Connection refused
    Is the server running on host "localhost" (::1) and accepting
    TCP/IP connections on port 5432?
could not connect to server: Connection refused
    Is the server running on host "localhost" (fe80::1) and accepting
    TCP/IP connections on port 5432?

OS X가 자체 버전의 Postgre를 설치하기 때문에 이런 일이 발생한다는 것을 그 이후로 읽었습니다.SQL 및 Homebrew는 다른 위치에 다른 버전을 설치하고 Postgre를 설치합니다.SQL 명령이 /tmp/ 디렉토리를 찾고 있습니다.스택 오버플로에 대해 더 검색해야 하지만 기본적으로 Postgre를 링크합니다.SQL을 사용하면 해당 tmp 경로를 검색하는 모든 항목이 실제 경로를 찾을 수 있습니다.

이것은 제가 몇 가지 더 시도해 볼 수 있는 것을 발견한 링크입니다. 특히 위와 같은 심볼릭 링크를 수행하면 Mac OSX Lion Postgres는 /tmp/.s의 연결을 허용하지 않습니다.PGSQL.5432.저는 여전히 누군가가 Postgre 설치 뒤에 있는 개념에 대한 적절한 설명을 함께 해주기를 바랍니다.OS X의 SQL과 그 모든 것이 어려운 이유.

문제 해결에 도움이 되는 최신 정보:

$ which psql // This tells you which PostgreSQL you are using when you run $ psql. 

그런 다음 실행:

$ echo $PATH

고려해야 할 핵심 사항은 다음과 같습니다.

Postgre 사본의 경로 항목 확인실행할 SQL이 OS X 시스템의 Postgre 경로 앞에 옵니다.SQL.

이는 Postgre를 결정하는 핵심 요구 사항입니다.SQL이 실행되고 이러한 문제의 대부분이 발생한다고 들었습니다.

합니다. postgres postmaster일 것입니다.pid가 없는지 확인하십시오./usr/local/var/postgres/

이 서버를 제거하고 서버를 시작합니다.

확인하세요 - https://github.com/mperham/lunchy 은 launchctl을 위한 훌륭한 포장지입니다.

저한테는 이게 효과가 있어요

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

다음 중 하나로 이 파일을 제거한 후 Postgres를 다시 시작해야 할 수도 있습니다.

brew services restart postgresql
# or 
pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start

OS X에 있는 경우 "Postgres.app"이 더 나은 해결책입니다.


해결 방법은 다음과 같습니다.

  1. 데이터베이스 중지
  2. cd /var
  3. sudo rm -r pgsql_socket
  4. sudo ln -s /tmp pgsql_socket
  5. chown _postgres:_postgres pgsql_socket
  6. 컴퓨터가 아닌 PostgreSQL 재시작

자세한 내용은 "postgresql 9.0.3 on Lion Dev Preview 1"에서 확인할 수 있습니다.

이것은 당신이 언급한 오류에 대해 저에게 효과가 있었습니다.다음 중 하나를 수행합니다.

  1. 기변포수있다니에 된 기본 할 수 .postgres.conf 다른 한 경우5432설치하는 동안

  2. 번호변에서 postgresql.confDB 서버를 다시 시작합니다.

  3. 에 에.psql전체 명령 입력:

    psql -p 5432 -h localhost   
    
    • 서버 이름 및 포트 번호

Homebrew를 실행 중인 경우 Postgresql end pgem을 제거합니다.*

$ gem uninstall pg
$ brew uninstall postgresql

다음 스크립트를 다운로드하여 실행하여 /usr/local에 대한 사용 권한을 수정합니다.* https://gist.github.com/rpavlik/768518

$ ruby fix_homebrew.rb

그런 다음 Postgres를 다시 설치하고 pgem:*

$ brew install postgresql  
$ initdb /usr/local/var/postgres -E utf8

로그인 실행 시 postgresql을 시작하도록 하려면:

$ ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents 

수동으로 시작할 수도 있습니다.

pgem 설치

$ gem install pg

도움이 되었길 바랍니다.

저는 우편물을 업그레이드하여 이것을 고쳤습니다.

brew update
brew upgrade

그런 다음 10개에서 11개로 업그레이드했기 때문에 새로운 메이저 버전과 호환되도록 데이터베이스도 업그레이드해야 했습니다.

brew postgresql-upgrade-database

(출처 https://github.com/facebook/react-native/issues/18760#issuecomment-410533581)

Postgres를 9.3.x로 업그레이드할 때 문제가 발생했습니다.가장 빠른 해결책은 이전에 사용하던 9.2.x 버전으로 다운그레이드하는 것이었습니다(새 버전을 설치할 필요가 없음).

$ ls /usr/local/Cellar/postgresql/
9.2.4
9.3.2
$ brew switch postgresql 9.2.4
$ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
<open a new Terminal tab or window to reload>
$ psql

"Homebrew install specific version of formula?"는 문제를 해결하는 다른 방법과 함께 훨씬 포괄적인 설명을 제공합니다.

Mac 10.15.5에서 홈브루를 사용하여 실행할 때 이 오류가 발생했으며 위의 솔루션이 작동하지 않는 경우에는 더욱 업데이트된 솔루션인 것 같습니다.

postmaster라는 파일이 있습니다.postresql이 종료될 때 자동으로 삭제되어야 하는 pid.

다음 작업을 수행할 수 없는 경우

  • brew services stop postgresql <--- rm이 db를 손상시키기 전에 종료하지 못함
  • sudm /usr/local/var/postgres/postmaster.뚱딴지

그래서 여기에 있는 많은 문제들은 사람들이 이미 psql을 실행하고 있었기 때문에 제거해야 했던 것으로 보입니다.postmaster.pid하지만, 저는 시스템에 포스트그를 제대로 설치한 적이 없기 때문에 그런 문제는 없었습니다.

MAC OSX Yosemite에서 사용할 수 있었던 솔루션은 다음과 같습니다.

  1. 저는 http://postgresapp.com/ 에 가서 앱을 다운로드했습니다.
  2. 앱을 애플리케이션/디렉토리로 이동했습니다.
  3. 을 . . .zshrc : " .bashrc " .bash_profile "에 추가하여 $했습니다.export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin
  4. Applications 디렉토리에서 postgres를 실행하고 명령을 다시 실행했더니 작동했습니다.

이것이 도움이 되길 바랍니다!국수!

또한 이 답변이 저에게 가장 큰 도움이 되었습니다: https://stackoverflow.com/a/21503349/3173748

psql -p 5432 -h localhost를 실행할 때 루프백 드라이버를 사용하지 않고 실제 소켓을 사용하므로 소켓 연결을 허용하도록 postgres를 구성해야 합니다.따라서 pgadmin과 다른 클라이언트는 작동할 수 있지만 psql은 작동하지 않습니다.

실제 소켓을 통한 연결을 허용하려면 postgresql.conf 파일과 pg_hba.conf 파일을 모두 변경해야 합니다.또한 원격 IP에서 연결할 수 있으므로 기본적으로 원격 IP가 비활성화되어 있습니다.

이러한 파일은 데이터 디렉토리에 있지만 postgres가 설치된 방법에 따라 실제 위치가 다를 수 있습니다.postgres를 실행한 상태에서 다음 명령을 실행합니다.

ps -ef | grep postmaster

이 두 파일은 -D 디렉토리입니다(아마도 /usr/local/pgsql/data).

postgresql.conf 파일의 경우 listen_address의 주석을 제거하고 다음과 같이 변경합니다.

listen_address = '*'

pg_hba.conf의 경우 다음 행을 추가합니다.

host all all 0.0.0.0/0 md5

저는 맥이나 홈브루는 잘 모르지만, 포스트그레는 알아요.SQL을 아주 잘합니다.

Postgre의 로그 위치를 확인하려고 합니다.시작하려는 SQL 및 Postgre에 대한 소켓 디렉토리의 의미SQL. PG를 빌드할 때 기본적으로 소켓 디렉토리는 /tmp/입니다.PG를 구축한 후 PG를 시작할 때 변경하지 않았다면 /tmp에서 소켓 파일을 볼 수 있어야 합니다. ls -al /tmp

소켓 파일은 "."로 시작하므로 '-a' 도구로는 볼 수 없습니다.

만약 당신이 거기에 소켓을 보지 못하고 psawux | grep postgres에서 아무것도 보지 못한다면, PG가 실행되고 있지 않거나, 실행되고 있고 OSX가 설치된 것일 수 있습니다.localhost의 포트 5432에서 수신 중 충돌이 발생할 수 있습니다. netstat - anp를 사용하여 5432에서 수신 중인 내용을 확인하십시오.Mac OSX PG가 이미 해당 포트에서 수신 중이면 문제일 수 있습니다.

도움이 되길 바랍니다.홈브루는 상황을 좀 더 나쁘게 만들 수 있다고 들었습니다. 많은 사람들이 대신 VM을 사용하도록 권장했습니다.

명령어 를나위령명한rm /usr/local/var/postgres/postmaster.pid홈브루와 함께 postgresql의 특정 버전을 설치했기 때문에 작동하지 않았습니다.

는 른명은령입니다.rm /usr/local/var/postgres@10/postmaster.pid.

그리고나서brew services restart postgresql@10.

원인

Lion은 이미 설치된 Postgres 버전과 함께 제공되며 기본적으로 이러한 바이너리를 사용합니다.일반적으로 홈브루 포스트그레스 바이너리에 대한 전체 경로를 사용하여 이 문제를 해결할 수 있지만 다른 프로그램에는 여전히 문제가 있을 수 있습니다.

해결책

http://nextmarvel.net/blog/downloads/fixBrewLionPostgres.sh | sh

경유

http://nextmarvel.net/blog/2011/09/brew-install-postgresql-on-os-x-lion/

이 오류가 발생하는 한 가지 이유는 컴퓨터를 다시 시작할 때 로컬 postgres 데이터베이스가 종료되기 때문입니다.새 터미널 창에 다음을 입력합니다.

$psql -h localhost 

서버를 다시 시작합니다.

세상 :) 안녕하세요 :)
나에게 가장 좋지만 이상한 방법은 다음 일들을 하는 것이었습니다.

postgres93.app 또는 다른 버전을 다운로드합니다.이 앱을 /Applications/폴더에 추가합니다.

파일에 행(명령) 추가.bash_profile 홈 디렉토리에 으)로 표시됩니다.

PATH=/응용 프로그램/Postgres93.app/콘텐츠/MacOS/bin/:$PATH 내보내기
It's a PATH to psql from Postgres93.app. The row (command) runs every time console is started.

런칭Postgres93.app/Applications/폴더를 누릅니다.로컬 서버(포트는 "5432", 호스트는 "localhost")를 시작합니다.

이 모든 조작 후에 저는 뛸 수 있어서 기뻤습니다.$ createuser -SRDP user_name그리고 다른 명령들과 그것이 작동했는지 확인하는 것! Postgres93.app시스템이 시작될 때마다 실행되도록 만들 수 있습니다.

또한 데이터베이스를 그래픽으로 보려면 설치해야 합니다.PG Commander.app를 예쁜 테이블로

물론 로컬 서버에만 도움이 됩니다.이 지침서가 이 문제에 직면한 다른 사람들에게 도움이 된다면 기쁠 것입니다.

나는 Postgre를 먹었습니다.SQL 9.3에서 동일한 오류가 발생했습니다.

서버에 연결할 수 없음: 연결이 거부됨 서버가 호스트 "localhost"(127.0.0.1)에서 실행되고 포트 5432에서 TCP/IP 연결을 수락합니까?

다음을 사용하여 이 문제를 해결했습니다.

chmod 777  /var/lib/pgsql/9.3/data/pg_hba.conf 
service postgresql-9.3 restart

저한테는 효과가 있어요.

때 와 같은 했습니다.md4md5) 내 안에서pg_hba.conf파일)/etc/postgresql/9.5/main/pg_hba.conf)

만약 당신이 나처럼 여기에 왔다면, 그 파일을 한 번 더 확인해서 그 안에 말도 안 되는 것이 없는지 확인하세요.

실행하여 오류가 나타나는 즉시 Postgres를 다시 시작하십시오.brew services restart postgresql그리고 다시 시도합니다.

Postgre를 실행할 때 다른 문제가 있을 수 있습니다.로컬 SQL.설치된 모든 버전의 포스트그레스를 청소하고 새로 시작하는 것을 추천합니다.설치한 후 최신 버전의 레일 프로젝트를 사용하면 데이터베이스를 쉽게 재생성할 수 있습니다.db/schema.rb

보통 Postgre를 설치하는 방법은 다음과 같습니다.Mac의 SQL.로컬에서 루트 사용자 아래에서 데이터베이스를 실행하는 경우, 다음을 만드는 마지막 단계를 생략할 수 있습니다.todo사용자

그 이유 중 하나는

postgresql.conf 파일의 unix_directories가 찾고 있는 디렉토리와 함께 나열되지 않습니다.

질문 예제에서 디렉토리 /tmp를 찾고 있습니다. 이것은 postgresql.conf 파일에 제공되어야 합니다.

다음과 같은 것:

unix_socket_directories = '/var/run/postgresql,/tmp'    # comma-separated list of directories

이 해결책은 저에게 효과가 있었습니다.

MacOS에서 홈브루를 사용하는 경우 다음과 같은 답변이 매우 유용합니다.

https://stackoverflow.com/a/27708774/4062901

서버가 실행 중이었지만 업그레이드로 인해 연결에 문제가 있었습니다(참고:양조 서비스를 이용합니다.Postgres가 실행 중인 경우 시도cat /usr/local/var/postgres/server.log로그에 뭐라고 쓰여 있는지 확인해 보세요.나의 오류는 연결 문제가 아니라 마이그레이션이었습니다.

또한 수동 마이그레이션 후에는 사용자를 위한 테이블이 더 이상 없다는 것을 알게 되었습니다.이 명령을 사용하여 다음 문제를 해결합니다.createdb(psql을 통해 답변함: FATAL: 데이터베이스 "<user>"가 존재하지 않음)

다른 스택 오버플로 질문의 다음 솔루션이 도움이 되었습니다.

postgres 데이터 디렉토리를 찾습니다.홈브루를 사용하는 MAC에서는 /usr/local/var/postgres/이고, 다른 시스템에서는 /usr/var/postgres/일 수 있습니다.

다음을 실행하여 pid 파일 제거:

rm postmaster.pid

진행을 다시 시작합니다.Mac에서 실행:

brew services restart postgresql

아주 간단합니다.데이터베이스에 호스트만 추가합니다.yaml 파일.

언급URL : https://stackoverflow.com/questions/12472988/postgresql-error-could-not-connect-to-server-no-such-file-or-directory

반응형