로컬 Postgre에 연결할 수 없습니다.SQL
저는 지역 개발 환경을 구축했습니다.
모든 로컬 Rails 앱에서 다음 오류가 발생합니다.
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"?
왜 이런 일이 생겼는지 전혀 모르겠어요.
솔루션을 찾는 동안 번들 보석, 시스템 보석, MacPorts를 모두 업데이트했습니다.기쁨이 없습니다.
어떤 버전의 Postgres(즉, OSX 버전 또는 MacPorts 버전)를 사용해야 하는지에 대한 혼란으로 인해 OSX Leopard에서 Lion으로 업그레이드할 때 이 문제가 보고된 적이 있습니다.저는 몇 달 동안 Lion을 운영하고 있는데, 지금 이런 일이 일어나는 것이 이상해 보입니다.
저는 무엇이 문제인지 먼저 이해하지 못한 채 너무 많은 것을 만지작거리는 것을 꺼립니다.어떻게 하면 체계적으로 디버깅할 수 있습니까?
Postgre의 버전 수를 확인하려면 어떻게 해야 합니까?SQL은 내 시스템에 있으며, 어떤 SQL에 액세스하고 있으며, 위치는 어디입니까?잘못된 Postgre일 경우 어떻게 해결합니까?SQL이 사용되고 있습니까?
질문을 해서 죄송합니다.나는 아직도 이것이 어떻게 작동하는지 배우고 있습니다!조언해 주셔서 감사합니다.
편집
일부 업데이트는 아래 제안 및 설명을 기반으로 합니다.
도망치려고 했어요pg_lsclusters
그것은 a를 반환했습니다.command not found
오류
그런 다음 pg_hba.conf 파일을 로컬로 이동하려고 시도했고 다음 세 가지 샘플 파일을 찾았습니다.
/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
그럼 3가지 버전의 PSQL이 설치되어 있다고 가정합니까?Macports, OSX 기본값 및 ?? ?
script 그런음 launchctl 작크립검색했습다니트를을 했습니다.ps -ef | grep postgres
아온돌온돌.
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
postgresql84-server의 내용을 게시했습니다.래퍼(http://pastebin.com/Gj5TpP62 ).
도망치려고 했어요port load postgresql184-server
했습니다.Error: Port postgresql184-server not found
.
저는 여전히 이것을 어떻게 고쳐야 할지 매우 혼란스럽고, "머슴을 위한" 조언에 감사합니다.
감사합니다!
EDIT2
이 문제는 제가 데몬도에 문제가 생긴 후에 시작되었습니다.내 로컬 레일즈 앱이 "대몬도 보석을 찾을 수 없습니다"라는 라인의 애플리케이션 오류로 인해 충돌했습니다.그런 다음 일련의 번들 업데이트, 보석 업데이트, 포트 업데이트 및 브루 업데이트를 통해 문제를 찾아냈습니다.
이 오류가 데몬도에 문제가 될 수 있습니까?
이것은 정말 파일 권한 오류처럼 보입니다.유닉스 도메인 소켓은 파일이며 다른 것과 마찬가지로 사용자 권한을 가집니다.데이터베이스에 액세스하려는 OSX 사용자에게 소켓 파일에 액세스할 수 있는 파일 권한이 없는 것 같습니다.이를 확인하기 위해 Ubuntu와 psql에서 동일한 오류를 생성하기 위해 몇 가지 테스트를 수행했습니다(아래 포함).
파일 및./var
그리고./var/pgsql_socket
Rails 앱(OSX 사용자)은 이러한 디렉터리에 대한 실행(x) 권한이 있어야 하며(모든 사용자에게 권한을 부여하는 것이 좋습니다) 소켓에는 전체 권한(wrx)이 있어야 합니다.사용할 수 있습니다.ls -lAd <file>
파일을 확인하거나 링크가 가리키는 파일을 확인해야 합니다.
dir에 대한 사용 권한을 직접 변경할 수 있지만 소켓은 에서 postgres로 구성되어 있습니다.postgresql.conf
은 이은다음같디찾서수있다니습을에와 같은 수 .pg_hba.conf
(어느 쪽인지 알아내야 합니다.)권한을 설정했으면 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.
편집:
관련성이 있는지 확인하기 위해 구글에서 빠르게 검색했습니다.이것은 아마도 다음과 같은 시도를 초래할 것입니다.find
구성 파일이 실패했습니다.
http://www.postgresqlformac.com/server/howto_edit_postgresql_confi.html
오류 메시지:
pg_hba.conf에서 사용자를 찾을 수 없습니다.
psql: FATAL: no pg_hba.conf entry for host "[local]", user "couling", database "main", SSL off
사용자가 암호 인증에 실패했습니다.
psql: FATAL: password authentication failed for user "couling"
유닉스 소켓 파일 누락:
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"?
Unix 소켓이 있지만 서버가 이 소켓을 수신하지 않습니다.
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"?
유닉스 소켓 파일에 대한 잘못된 파일 권한:
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"?
제 직감은 이것이 (다시) 맥/OSX와 같은 것이라는 것입니다. 프런트 엔드와 백 엔드는 유닉스 도메인 소켓(랑데부 포인트 기능)을 위한 다른 위치를 가정합니다.
체크리스트:
- 실행 중: Postgres 행 실:
ps aux | grep postgres | grep -v grep
방법을 강구해야 합니다. - 는 다음과 같습니다.
find / -name .s.PGSQL.5432 -ls
(소켓은 /tmp에 있었습니다; 당신은 그곳을 보기 시작할 수 있었습니다) - (하이브리드 도메인) 소켓을 찾더라도 클라이언트는 다른 위치를 사용할 수 있습니다.클라이언트와 서버가 서로 다른 랑데부 주소를 사용하여 배포를 혼합하거나 배포가 어딘가에 설치되어 있고 다른 곳에 배포(예: 원본)가 설치되어 있는 경우에 이 문제가 발생합니다.
postgres가 실행 중이고 소켓이 실제로 존재하는 경우 다음을 사용할 수 있습니다.
psql -h /the/directory/where/the/socket/was/found mydbname
(unix-domain 소켓에 연결 시도)
됩니다: try 이제 psql 프가표시다니됩트롬프. 시도하십시오.\d
그리고 나서.\q
그만두기 위해다음을 시도할 수도 있습니다.
psql -h localhost mydbname
.
(localhost(127.0.0.1)에 연결을 시도합니다.
권한 부여가 충분하지 않아 이러한 시도가 실패하면 pg_hba.conf를 변경할 수 있습니다(그리고 SHAEUP 또는 다시 시작). 이 경우: 로그도 확인합니다.
비슷한 질문:Postgres를 시작할 수 없습니다.
이 psql 프롬프트를 볼 수 , 이의 참: 만당이 psql 프할수있근다면접에다고, ▁your를 바꾸는 것입니다.config/database.yml
추가: 메시지:
host: localhost
또는 다음을 추가할 수 있습니다.
host: /the/directory/where/the/socket/was/found
저 같은 경우에는.host: /tmp
해 보세요gem uninstall pg
그런 다음 다시 설치합니다. 번들러를 사용하는 경우bundle install
,또 다른gem install pg
또한 경로가 올바른 버전을 선택하는지 확인하십시오. Lion에는 posgresql 버전(이전 버전은 그렇지 않음)이 있으며 로컬로 설치된 버전(예: MacPorts, 홈브루)보다 이전 경로에 있을 수 있습니다.
제 경우: postgresql의 홈브루 설치, postgresql, rails 등을 업데이트한 후 이 오류가 발생했습니다.pgem을 제거하고 다시 설치하는 것이 저에게 도움이 되었습니다.
소켓 파일의 위치는 컴파일 시 보석으로 구워집니다.따라서 페이지 보석을 다시 작성해야 합니다.
gem pristine pg
# or
bundle exec gem pristine pg
이렇게 하면 해당 문제가 해결될 것입니다.
유사한 오류가 발생하는 경우:
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"?
이렇게 하면 효과가 있을 수 있습니다(저에게는 효과가 있었습니다).
initdb /usr/local/var/postgres -E utf8
OSX/Brew를 사용하지 않는 경우 지정된 디렉터리가 달라야 합니다.
참고: 위에 표시된 정확한 오류 메시지는 아니지만 이 스레드는 해당 오류 메시지의 첫 번째 결과입니다.
이 오류를 해결한 것은 postgres 디렉토리에서 postmaster.pid라는 파일을 삭제한 것입니다.단계별 지침은 다음 링크를 사용하여 제 질문/답변을 참조하십시오. 제 문제는 파일 권한과 관련이 없습니다.
psql: 서버에 연결할 수 없습니다.해당 파일 또는 디렉터리 없음(Mac OS X)
이 질문에 대답한 사람들은 많은 게임을 떨어뜨렸습니다. 감사합니다! 저는 제가 할 수 있는 모든 것을 투표했습니다.
이것이 제가 그 오류 메시지를 해결한 방법입니다. 부분적으로는 와일드 플래서의 답변을 기반으로 합니다.
find / -name .s.PGSQL.5432 -ls 2> /dev/null
=> ... /tmp/.s.PGSQL.5432
제 소켓이나 뭐 그런 것도 있지만, 고객은 다음과 같이 찾습니다.
/var/run/postgresql/.s.PGSQL.5432
그래서 아주 간단하게 상징적인 링크를 만듭니다./tmp/.s.PGSQL.5432
:
sudo ln -s /tmp/.s.PGSQL.5432 /var/run/postgresql/.s.PGSQL.5432
이것이 누구에게나 도움이 되기를 바랍니다.뭔가 잘못된 것 같지만, 야, 효과가 있어요!
새 게시물로 업그레이드한 후 이 메시지를 받기 시작했습니다. 데이터 파일이 있는지 몰랐습니다.
먼저 postgres 서버를 시작하려고 했습니다.
postgres -D /usr/local/var/postgres
이것이 제가 이 오류를 본 방법입니다.
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.
그래서 저는 SO에서 비호환성 오류와 관련된 답을 찾았습니다. https://serverfault.com/questions/342626/how-do-i-upgrade-postgresl-database-incompatibility-error
이것이 그것을 고친 것입니다.
mv /usr/local/var/postgres /usr/local/var/postgres.old
initdb -D /usr/local/var/postgres
PSQL과 Django에 대해 비슷한 문제가 있다는 것을 확인한 것입니다.
psql 서버가 올바르게 종료되지 않았고 postmaster.pid 파일이 여전히 내 postgres 폴더에 있기 때문인 것 같습니다(적절한 종료 시 자동으로 삭제되어야 함).
이것과 모든 것이 삭제되었습니다.
같은 오류가 발생했습니다(알고 보니 오류였습니다).postmaster.pid
포스트그레스를 다시 시작하고 실행하게 된 방법은 다음과 같습니다(수리에 대한 리카르도 부리요의 공로).
$ rm /usr/local/var/postgres/postmaster.pid
$ pg_resetxlog -f /usr/local/var/postgres
레일에 postgresql을 사용하려고 할 때도 비슷한 문제가 있었습니다.새로운 버전의 gempg를 사용하기 위해 내 Gemfile을 업데이트하는 것은 나에게 이 문제를 해결해줍니다. (gempg 버전 0.16.0은 작동합니다.)Gem 파일에서 다음을 사용합니다.
gem 'pg', '0.16.0'
그런 다음 다음을 실행하여 보석을 업데이트합니다.
bundle install --without production
bundle update
bundle install
제 맥북의 배터리가 방전된 후 오늘 저에게 이런 일이 일어났습니다.부적절한 종료로 인해 발생할 수 있다고 생각합니다.저 같은 경우에는 우체국장을 삭제하기만 하면 됩니다.뚱딴지
폴더로 이동합니다.
cd /usr/local/var/postgres
postmaster.pid가 있는지 확인합니다.
ls
우체국장을 제거합니다.뚱딴지
rm postmaster.pid
저는 이 오류에 대한 많은 주제를 읽었고 저에 대한 해결책은 다음과 같이 게시물을 다시 시작하는 것이었습니다.
sudo service postgresql restart
이것은 여기에 언급되지 않았습니다.
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"?
저는 잠시 해결책을 찾고 있습니다.이 문제는 저에게도 해결되었습니다(데이터베이스 재작성).
rm -r /usr/local/var/postgres
initdb /usr/local/var/postgres -E utf8
pg_ctl -D /usr/local/var/postgres -l logfile start
OS X 10.11.3을 브루와 함께 사용합니다.
저의 경우, 이전의 해결책 중 어느 것도 좋지 않았습니다. TCP를 할 수 .host
+port
레일즈 구성 파일의 번호입니다. ㅠㅠ.database.yml
파일은 다음과 같이 두 줄만 추가합니다.
...
adapter: postgresql
encoding: unicode
pool: 5
host: localhost
port: 5432
이것으로 저의 문제가 해결되었습니다 :)
이 수정 프로그램을 사용하기 전:
sudo mkdir /var/run/postgresql
sudo ln -s /tmp/.s.PGSQL.5432 /var/run/postgresql/.s.PGSQL.5432
재부팅할 마다 하지만 할때마다재팅부▁but때/tmp/.s.PGSQL.5432
삭제되었고 이 명령을 반복해야 했습니다.작동하지만파일만 하는 것이 . :) 따라서 Rails 데이터베이스 구성 파일만 수정하는 것이 좋습니다. :)
Django에서 Posgtres를 설정할 때 이 오류가 발생했습니다. Back Track을 사용하고 있는데 Postgres가 설치된 상태로 제공됩니다.설정이 문제인 것 같습니다.저는 그것을 완전히 제거하고 그렇게 다시 설치하여 고쳤습니다.
sudo apt-get remove postgresql
sudo apt-get purge postgresql
이제 실행:
apt-get --purge remove postgresql\*
모든 것을 제거하기 위해 Postgre.시스템에서 SQL.postgres 패키지는 빈 메타 패키지이기 때문에 삭제하는 것만으로는 충분하지 않습니다.
원스 올 포스트그레SQL 패키지가 제거되었습니다. 실행:
rm -r /etc/postgresql/
rm -r /etc/postgresql-common/
rm -r /var/lib/postgresql/
userdel -r postgres
groupdel postgres
이제 다음을 수행할 수 있습니다.
apt-get install postgresql
MacOSX입니다.홈브루를 사용하여 postresql 설치를 9.1 이전 버전에서 9.1.2로 업그레이드한 후에도 동일한 문제가 발생했습니다.pg_dump를 사용하여 업그레이드하기 전에 데이터베이스를 덤프해야 합니다. 9.1 이전 데이터베이스는 호환되지 않습니다.동일한 문제, 동일한 오류 메시지.
pggem을 제거하는 것이 저에게 도움이 되었습니다.사실 저는 그 문제를 발견하기 위해 꽤 많은 춤을 춰야 했습니다.먼저 글로벌 보석 제거 작업을 수행하여 오래된 보석(몇 개)을 모두 제거했습니다.그런 다음 저는 젬 파일에서 pg를 제거하고, 다시 바인딩하고, pg 참조를 복원하고, 다시 반등했습니다.
그 후, 그것은 매력적으로 작용했습니다.
세상 :) 안녕하세요 :)
나에게 가장 좋지만 이상한 방법은 다음 일들을 하는 것이었습니다.
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
를 예쁜 테이블로
물론 로컬 서버에만 도움이 됩니다.이 지침서가 이 문제에 직면한 다른 사람들에게 도움이 된다면 기쁠 것입니다.
나는 이 문제로 나를 괴롭혔고, 추가 조사 후에 (실행).rake db:setup
), 에 사용된 인스턴스 변수에 에 것을
사항: 해결방:unset DATABASE_URL
출처: https://stackoverflow.com/a/17420624/2577622
저는 이 문제에 대한 대부분의 해결책을 시도해 보았지만 실행할 수 없었습니다.
도망친lsof -P | grep ':5432' | awk '{print $2}'
실행 중인 프로세스의 PID를 보여줍니다.하지만 나는 그것을 죽일 수 없었습니다.kill -9 <pid>
.
내가 뛰었을 때pkill postgresql
프로세스가 마침내 중지되었습니다.이게 도움이 되길 바랍니다.
gem uninstall pg
홈브루가 설치된 OS X의 경우:
gem install pg -- --with-pg-config=/usr/local/bin/pg_config
언급URL : https://stackoverflow.com/questions/8465508/can-not-connect-to-local-postgresql
'sourcecode' 카테고리의 다른 글
드롭다운 목록을 만드는 방법은 무엇을 선택합니까? (0) | 2023.05.24 |
---|---|
Objective-C 파일이 .m 확장자를 사용하는 이유는 무엇입니까? (0) | 2023.05.14 |
findOneAndDelete()와 findOneAndRemove()의 차이 (0) | 2023.05.14 |
PyMongo를 사용하여 MongoDB 데이터베이스를 삭제하려면 어떻게 해야 합니까? (0) | 2023.05.14 |
VB의 문자열에서 공백을 제거합니다.그물 (0) | 2023.05.14 |