Підключення pgAdmin3 до Postgres на Heroku


9

Я запускаю базу даних Heroku Postgres ( База даних ) спільно з додатком Django. Документи, що посилаються на надбудову, тут . Я вважав, що це буде вагомим питанням для спільноти, оскільки Heroku сьогодні попередив своїх користувачів про те, що вона буде переносити все з додатку спільної бази даних, який раніше був за замовчуванням.

У мене виникають проблеми з підключенням pgAdmin3 до бази даних.

Відповідно до інструкцій, наведених у посиланні вище, я захоплюю облікові дані бази даних за допомогою наступної команди:

$ heroku pg:credentials HEROKU_POSTGRESQL_OLIVE

Я використовую домашню інсталяцію Postgresql на Mac OSX.

Тим часом у мене є:

  • увімкнено SSL в моєму pg_postgresql.conf;
  • додано налаштування: listen_addresses = '*'
  • і додав host all all 0.0.0.0/0 md5
  • і перезапустив мій сервер postgres.

Потім переходжу до pgAdmin3 і вибираю File > Add Server.

Я ввожу дані, надані Heroku наступним чином (перший - ім'я облікових даних Heroku, друге - ім'я поля pgAdmin):

На вкладці "Властивості":

  • dbname в ім'я;
  • приймати господаря;
  • порт в порт;
  • Я залишаю поле pgAdmin для "База технічного обслуговування" порожнім;
  • користувача в ім’я користувача;
  • пароль в пароль;

На вкладці SSL:

  • У полі для SSL я вибираю "вимагати" (згідно інструкції 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 на стеку Overflow за відповідь тут .

Дослівне цитування звідти:

Відкрийте "Властивості" сервера Heroku в pgAdminIII та змініть значення "DB обслуговування", щоб воно було назвою бази даних, до якої потрібно підключитися. Установка за замовчуванням підходить для DBA та інших, які можуть підключитися до будь-якої бази даних на сервері, але, мабуть, це не так у вашому випадку.

Це працювало для мене!


але це закрило 1368 баз даних. навіть якщо я додав БД технічного обслуговування як моє ім'я db
Суніл Гарг

3

FATAL: permission denied for database "postgres"вказує на те, що він намагається підключитися до бази даних postgres. Ми дійсно не надаємо таких пільг. Ви можете підключитися до власної бази даних, але це повинно бути добре. Ви можете довести це шляхом підключення через psql CLI.

Здається, ви встановлюєте heroku's dbnameна щось, що називається Nameв pgadmin. Здається, це "ім'я підключення" для того, що ви створюєте там (щось довільне для посилання на нього пізніше), але чи не існує місця, де можна встановити фактичне ім'я бази даних, щоб воно не було за замовчуванням postgres?

Я не користувач pgadmin, але просто шукаю знайдені документи [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

Тоді ви можете використовувати інструмент GUI, як PG Commander або PGAdmin для підключення до db.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.