Назад | Перейти на главную страницу

Подключение к postgresql зависает через SSH-туннель на OSX

Пытается подключиться к удаленному серверу PG на OSX, но время ожидания истекает.

Сначала я настроил туннель:

ssh -L 5433:serverip:5432 user@serverip

Затем в отдельном терминале пытаюсь подключиться к PG:

psql -h localhost -p 5433 -U user

Здесь связь просто сидит около 3 минут. Затем я получаю следующее сообщение:

psql: server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.

На терминале туннеля ssh я вижу следующее:

channel 3: new [direct-tcpip]
(3 mins later:)channel 3: open failed: connect failed: Connection timed out

Я пробовал все возможные варианты (localhost vs 127.0.0.1, diff usernames). Ничего не работает. Эта точная настройка отлично работает на Windows Putty, так что это не сервер. Я также могу использовать ssh и запускать psql на сервере, так что это не PG.

Я верю, что у тебя есть postgresql настроен на прослушивание только на loopbavk (localhost). Вы должны использовать переадресацию следующим образом:

ssh -L 5433:localhost:5432 user@serverip

В противном случае он попытается подключиться к общедоступному IP-адресу вашего сервера, на котором ничего не слушает и не авторизовано для входа в систему.

У меня была очень похожая проблема (здесь Ubuntu): туннель ssh для порта PostgreSQL, доступ psql к удаленной базе данных с помощью этого туннеля. Когда я запрашивал автозаполнение в psql (выберите * из x), туннель зависал / вылетал.

Решение: изменить MTU для всех интерфейсов с 1500 на 576. Пояснение: http://www.snailbook.com/faq/mtu-mismatch.auto.html

Прошло несколько часов моей жизни ..