Heroku에서 pgAdmin3을 Postgres에 연결


9

Django 앱과 관련 하여 Heroku Postgres 데이터베이스 ( Database )를 실행하고 있습니다. 추가 기능을 참조하는 문서는 여기에 있습니다 . Heroku는 오늘 사용자에게 기본값이었던 공유 데이터베이스 애드온에서 모든 것을 마이그레이션 할 것이라고 경고했기 때문에 이것이 커뮤니티에 가치있는 질문이라고 생각했습니다.

pgAdmin3을 데이터베이스에 연결하는 데 문제가 있습니다.

위 링크의 지침에 따라 다음 명령으로 데이터베이스 자격 증명을 가져옵니다.

$ heroku pg:credentials HEROKU_POSTGRESQL_OLIVE

Mac OSX에서 Postgresql의자가 설치를 사용하고 있습니다.

그동안 나는

  • 내 pg_postgresql.conf에서 SSL을 켰습니다.
  • 설정을 추가했습니다 : listen_addresses = '*'
  • 그리고 추가 host all all 0.0.0.0/0 md5
  • postgres 서버를 다시 시작했습니다.

그런 다음 pgAdmin3으로 이동하여을 선택하십시오 File > Add Server.

다음과 같이 Heroku에서 제공 한 자격 증명을 입력합니다 (첫 번째는 Heroku 자격 증명 이름이고 두 번째는 pgAdmin 필드 이름 임).

"속성"탭에서 :

  • dbname을 이름으로;
  • 호스트로 호스트;
  • 포트에 포트;
  • "유지 관리 데이터베이스"에 대한 pgAdmin 필드를 비워 둡니다.
  • 사용자 이름으로;
  • 비밀번호에 비밀번호;

SSL 탭에서 :

  • SSL 필드에서 "require"(Heroku의 지시에 따라)를 선택합니다.

Enter 키를 누르면 pgAdmin이 다음과 같이 오류를 던집니다.

An error has occurred:

Error connecting to the server: FATAL: permission denied for database "postgres"
DETAIL: User does not have CONNECT privilege.

이 시점에서해야 할 일이 확실하지 않습니다. 어떤 조언을 부탁드립니다.


pgadmin.org/docs/1.8/connect.html 은 다음 The maintenance DB field is used to specify the initial database that pgAdmin connects to, and that will be expected to have the pgAgent schema and adminpack objects installed (both optional). On PostgreSQL 8.1 and above, the maintenance DB is normally called ‘postgres’과 같이 말합니다. -pgAdmin이 연결을 시도했습니다. postgres사용자 의 비밀번호를 제공하십시오 .
dezso

답변:


6

덕분에 대답 스택 오버플로에 @araqnid하는 여기 .

거기에서 인용 된 그대로 :

pgAdminIII에서 Heroku 서버의 "속성"을 열고 "유지 관리 DB"값을 연결하려는 데이터베이스의 이름으로 변경하십시오. 기본 설정은 서버의 모든 데이터베이스에 연결할 수있는 DBA 등에 적합하지만 사용자의 경우에는 그렇지 않습니다.

이것은 나를 위해 일했다!


그러나 이것은 1368 데이터베이스를 선택했습니다. 난 내 DB 이름으로 유지 관리 DB를 추가 한 경우에도
선일 Garg를

3

FATAL: permission denied for database "postgres"postgres 데이터베이스에 연결하려고 함을 나타냅니다. 우리는 실제로 그러한 특권을 부여하지 않습니다. 그래도 자신의 데이터베이스에 연결할 수 있습니다. psql CLI를 통해 연결하여이를 증명할 수 있습니다.

헤 로쿠를 pgadmin에서 dbname호출 한 것으로 설정 한 것 같습니다 Name. 그것은 당신이 거기에서 만들고있는 것 (나중에 그것을 참조하기 위해 임의의 것)에 대한 "연결 이름"인 것처럼 보이지만 실제 데이터베이스 이름을 설정할 수있는 곳은 없으므로 기본값이 postgres?

나는 pgadmin 사용자가 아니지만 다음을 지정하는 found docs [1] 주위를 검색합니다.

The maintenance DB field is used to specify the initial database that pgAdmin connects to.

당신은 그것을 시도 할 수 있습니까?

[1] http://www.pgadmin.org/docs/dev/connect.html


1

다음 명령을 실행하여 Heroku에서 데이터베이스 자격 증명을 가져옵니다.

heroku pg:credentials DATABASE_URL

그런 다음 PG Commander 또는 PGAdmin과 같은 GUI 도구를 사용하여 db에 연결할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.