2014-09-30 210 views
0

我正在尋找一種方式從我的本地主機:8081(jasperserver)連接到遠程服務器,我的mysql數據庫是。我在MySQL Workbench中通過SSH(唯一方式)連接到數據庫,它工作良好。 我做了很多研究,發現我需要在本地機器上建立一個SSH隧道,但是怎麼做呢?如何通過SSH連接到我的jasperserver?當我嘗試ssh localhost:8081時,它給了我'連接被拒絕'。我已經安裝了openssh for windows。 我也嘗試過Pentaho,它與jasper類似,連接方式也一樣。 謝謝...Jaspersoft/Pentaho - 通過SSH連接到MySQL

+0

你想使用'ssh'的原因是什麼?你不能直接到達遠程服務器,因爲這應該是首選方式。如果您出於安全原因需要執行此操作,則可以直接建立'ssh',而無需讓您的本地Pentaho服務器爲您執行此操作。一旦鏈接建立,任何進程都可以使用轉發的端口。 – 2014-09-30 15:50:36

+0

事情是我被告知ssh是我可以連接數據庫的唯一方法。我無法連接主機和用戶。所以我必須通過ssh來做到這一點。而我無法弄清楚如何正確建立隧道。 – radzik 2014-10-01 08:14:44

+0

你能建立從終端到遠程服務器的ssh連接嗎? – 2014-10-01 11:39:30

回答

2

的方式正確建立隧道如下:

ssh <user>@<host that has access to database> -L <local port>:<db server>:<remote port> 

然後你連接到localhost:<local port>

示例:您的數據庫服務器db.mydomain.com在端口3306上運行,但無法訪問它。您首先需要ssh到另一臺機器myproxy.mydomain.com,作爲用戶「用戶名」,它可以訪問數據庫服務器上的端口3306。在該機器上,嘗試使用

mysql -h db.mydomain.com -P 3306 -u <your db username> -p<your db password> <db name> 

驗證對數據庫的訪問。然後,通過建立隧道開始:

ssh [email protected] -L 3306:db.mydomain.com:3306 

一旦SSH連接建立,您可以通過使用URL localhost:3306127.0.0.1:3306連接到你的數據庫。

隧道正在做什麼是將流量重定向到本地計算機上的端口3306到遠程數據庫服務器的端口3306,使用代理機器作爲中繼。

+0

我想使用SSH隧道來訪問數據庫,證書是好的,因爲我已經在MYSQL GUI客戶端上測試了這一點,我剛剛測試過端口fwding使用命令行和命令行連接到服務器也完美工作。 但是當我嘗試連接到使用的Pentaho的數據庫服務器提供了錯誤的 訪問被拒絕的用戶「統計」 @「localhost」的(使用密碼:YES) 然後我用JNDI又給credentails那裏,但仍然不起作用。 – shzyincu 2016-10-18 07:24:16