Подтвердить что ты не робот

Как pg_dump базу данных RDS Postgres?

Как подключиться к моему экземпляру RDS с помощью pg_dump?

Это конечная точка экземпляра:

<long public dns thing>:5432

Итак, я запускаю эту команду:

pg_dump -h <long public dns thing> -p 5432 -f dump.sql

И получив это:

pg_dump: [archiver (db)] connection to database "brendan" failed:
could not connect to server: Connection refused
Is the server running on host "<long public dns thing>"
(<IP address>) and accepting TCP/IP connections on port 5432?

Это советы по устранению неполадок Amazon:

Невозможно подключиться к Amazon RDS PostgreSQL DB Instance

Наиболее распространенная проблема при попытке подключения к экземпляру DB PostgreSQL состоит в том, что группа безопасности, назначенная экземпляру БД, имеет неправильные правила доступа. По умолчанию экземпляры DB не разрешают доступ; доступ предоставляется через группу безопасности. Чтобы предоставить доступ, вы должны создать свою собственную группу безопасности с определенными правилами входа и выхода для вашей ситуации. Дополнительные сведения о создании группы безопасности для экземпляра базы данных см. В разделе Создание группы безопасности.

Самая распространенная ошибка не может быть подключена к серверу: время ожидания подключения. Если вы получили эту ошибку, убедитесь, что имя хоста является конечной точкой экземпляра БД и что номер порта верен. Убедитесь, что группа безопасности, назначенная экземпляру БД, имеет необходимые правила для доступа через локальный брандмауэр.

Есть ли способ указать мою группу безопасности из pg_dump? Если да, мне нужно получить локальную копию этого способа, которым мне нужен ключ ssh, когда ssh'ing?

Ошибочно ли даже пытаться использовать pg_dump удаленно? Должен ли я пытаться просто ssh на экземпляр вместо этого или делать что-то еще полностью?

4b9b3361

Ответ 1

Шаг 1. Создайте группу безопасности в AWS, на которой указан белый IP-адрес вашего компьютера.

Шаг 2. Добавьте эту группу безопасности к экземпляру базы данных, к которому вы хотите подключиться.

Шаг 3: Запустите pg_dump. Обязательно укажите свое имя пользователя (спасибо @LHWizard) с помощью команды -U. В этом случае моя не была "postgres", поэтому, как мне кажется, вам придется искать в aws, чтобы ее найти. Также не забудьте указать имя своей базы данных: в некоторых инструментах командной строки для этого есть ключ -d, но если вы проверите использование pg_dump:

Usage:
  pg_dump [OPTION]... [DBNAME]

вы можете видеть, что это формальный аргумент. Таким образом, вся команда (в моем случае) была:

pg_dump -h <public dns> -U <my username> -f dump.sql <name of my database>

Обратите внимание, что указание номера порта не требуется - я думаю, потому что порт 5432 является портом для postgres.