2016-02-11 3 views
3

У меня проблемы с подключением к базе данных, размещенной на сервере с использованием IntelliJ и JDBC. С помощью командной строки, введите команду:Как SSH туннель и подключаться к базе данных с помощью IntelliJ и JDBC?

ssh [email protected] -L 11100:ct1:28017 -N 

создает туннель успешно и команда:

psql db_name -h localhost -p 11100 db_username 

подключается к базе данных штрафа и позволяет мне использовать его. Как это правильно перевести в источники данных IntelliJ и инструменты туннеля SSH?

В настоящее время для настройки туннеля SSH у меня есть:

прокси сервера: сервер

Порт: 22

Proxy пользователя: имя пользователя

Для вкладки общего у меня есть:

хозяин: localhost

po RT: 28017

база данных: db_name

пользователь: db_username

соединение успешно возвращается после проверки соединения. В моей программе у меня есть:

Connection connection = DriverManager.getConnection("jdbc:postgresql://localhost:28017/db_name", user, password); 

Параметр URL-адрес, созданный IntelliJ. Это, однако, дает мне ошибку «Подключение к localhost: 28017 отказалось».

Любые идеи о том, что я делаю неправильно?

+0

Открыт ли порт '28017'? – Andremoniy

+0

@Andremoniy На сервере, да, он открыт. – echoeida

+0

Похоже, что вы используете локальный порт 11100 для туннеля SSH, то есть номер порта, который нужно указать в строке подключения (как и в 'psql db_name -h localhost -p 11100 db_username'). –

ответ

1

Вы подключаетесь к SSH-серверу из java-клиента, такого как SSHJ (https://github.com/hierynomus/sshj)?

URL-адрес вашего DriverManager кажется неправильным: вместо этого попробуйте порт 11100.

+0

Это, похоже, сработало. Я все еще закончил использование библиотеки Jsch и ее переадресацию портов. – echoeida