Как подключиться к pgAdmin3 в базе данных AWS PostgreSQL?

Я не могу подключиться к AWS postgres remote на моей локальной машине.

Я определенно не подключаюсь к удаленному серверу postgres на сервере AWS.

Я уже следую за другими темами, но я все еще путаюсь, почему никуда не подключаюсь?

,

На моем удаленном сервере я выполняю следующие 3 шага:

1) Я изменяю порт удаленной базы данных на 5434,

2) В postgresql.conf файл, который я установил "*" для listen_addresses флаг.

В pg_hba.conf файл, который я установил host all all 0.0.0.0/0 md5 атрибуты

3) я перезапускаю сервис postgres удаленного сервера

Вывод ошибки PgAdmin3:

05:17:44 PM: Error: SSH error: Error when starting up SSH session with error code -8 [Unable to exchange encryption keys]

Мне не удалось получить доступ к postgres, удаленному к СУБД AWS. Я следую этой инструкции: http://imperialwicket.com/aws-install-postgresql-90-on-amazon-linux

,

Скриншоты:

Я слежу за всеми темами ниже:

,

Я настраиваю pgAdmin3 для доступа, как показано ниже:

  • MY_IP_HERE Я установил с AWS IPv4
  • my_user_here Я установил с моим пользователем базы данных

,

,

,

И тогда я пытаюсь соединиться с моей удаленной базой данных через туннель HTTP

,

,

И я терплю неудачу

,

,

Иногда эта всплывающая ошибка появляется в pgAdmin3:

ASSERT INFO:
/usr/include/wx-3.0/wx/strvararg.h(456): assert "(argtype & (wxFormatStringSpecifier<T>::value)) == argtype" failed in wxArgNormalizer(): format specifier doesn't match argument type

BACKTRACE:
[1] wxMBConvUTF32LE::~wxMBConvUTF32LE()
[2] char* std::string::_S_construct<char*>(char*, char*, std::allocator<char> const&, std::forward_iterator_tag)
[3] char* std::string::_S_construct<char*>(char*, char*, std::allocator<char> const&, std::forward_iterator_tag)
[4] char* std::string::_S_construct<char*>(char*, char*, std::allocator<char> const&, std::forward_iterator_tag)
[5] wxListEvent::~wxListEvent()
[6] wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, wxEvent&) const
[7] wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&)
[8] wxEvtHandler::SearchDynamicEventTable(wxEvent&)
[9] wxEvtHandler::TryHereOnly(wxEvent&)
[10] wxEvtHandler::DoTryChain(wxEvent&)
[11] wxEvtHandler::ProcessEvent(wxEvent&)
[12] wxWindowBase::TryAfter(wxEvent&)
[13] wxEvtHandler::SafelyProcessEvent(wxEvent&)
[14] wxToolBarBase::OnLeftClick(int, bool)
[15] g_signal_emit_valist
[16] g_signal_emit_by_name
[17] g_signal_emit_valist
[18] g_signal_emit
[19] g_closure_invoke
[20] g_signal_emit_valist
[21] g_signal_emit
[22] g_closure_invoke
[23] g_signal_emit_valist
[24] g_signal_emit
[25] gtk_propagate_event
[26] gtk_main_do_event
[27] g_main_context_dispatch
[28] g_main_loop_run
[29] gtk_main
[30] wxGUIEventLoop::DoRun()
[31] wxEventLoopBase::Run()
[32] wxAppConsoleBase::MainLoop()
[33] wxEntry(int&, wchar_t**)
[34] __libc_start_main

2 ответа

@Nielson Я пытаюсь подключиться на консоли Linux с туннелем SSH.

5433 это postgres локальный порт моей машины

$ sudo lsof -i :5433

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME pgadmin3 1329 paneladm 15u IPv4 1534908 0t0 TCP debian:56894->ec2-[MY_IP].[ZONE].compute.amazonaws.com:5433 (SYN_SENT)

А под терминалом пусто.

В PgAdmin3 тоже нет подключения.

Я не знаю, как сделать внешнее соединение с RDS тоже, потому что группа по умолчанию разрешает внешние соединения уже.

Рекомендации:

AWS RDS - подключение к экземпляру БД, на котором запущено ядро ​​базы данных PostgreSQL

SSH туннелирование. "Адрес привязки уже используется"

У меня та же проблема, и я нахожу решение (для Linux).

Используя следующую командную строку:

sudo ssh -N -L 1234:yourrdsendpointname.us-east-1.rds.amazonaws.com:5432 ec2-user@56.78.123.45 -i yourkeyfile.pem

В этом примере 1234 - это локальный порт (доступен на локальном хосте), yourrdsendpointname.us-east-1.rds.amazonaws.com - конечная точка вашей базы данных RDS в aws, ec2-user - пользователь по умолчанию для экземпляра ec2. у него есть разрешение на подключение к базе данных rds, 56.78.123.45 - это публичный ip экземпляра ec2, а yourkeyfile.pem - ваш ключ для доступа к экземпляру ec2.

Когда вы запустите эту команду, вы сможете получить доступ к своей базе данных на локальном хосте и порту 1234, используя команду pgAdmin или psql (обратите внимание, что эта команда должна выполняться в терминале, чтобы туннель оставался открытым).

Для более подробного объяснения вы можете пойти сюда.

https://medium.com/@michalisantoniou6/connect-to-an-aws-rds-using-an-ssh-tunnel-22f3bd597924

Другие вопросы по тегам