出於安全考慮,有的時候資料庫伺服器只能通過ssh訪問,比如mysql服務裝在了伺服器a上,並且a機器只允許b機器才能訪問,而部署環境可能在c機器上,這時候就要c伺服器通過b伺服器連線a伺服器,這時候就需要用到ssh方式連線,需要ssh.net類庫:
**如下:
usingmysql.data.mysqlclient;
using
renci.sshnet;
using
system;
using
system.collections.generic;
using
system.componentmodel;
using
system.data;
using
system.drawing;
using
system.linq;
using
system.text;
using
system.threading.tasks;
using
system.windows.forms;
namespace
sshmysql
public
void
sshconnectmysql()
var portfwdl = new forwardedportlocal(sqlipa, sqlport, sqlhost, sqlport); //
對映到本地埠
client.addforwardedport(portfwdl);
portfwdl.start();
if (!client.isconnected)
mysqlconnection conn = new
mysqlconnection(sqlconn);
mysqldataadapter mydataadapter = new
mysqldataadapter();
mydataadapter.selectcommand = new
mysqlcommand(sqlselect, conn);
try
catch
(exception ee)
finally
client.disconnect();
}catch
(exception ex)}}
}}
注:如果出現錯誤可以把本地(開發機器)上的mysql服務停止掉。
需要的dll:sshdll.rar
Python通過ssh連線MySQL
機器a 通過機器b 登入機器c的mysql import pymysql from sshtunnel import sshtunnelforwarder server sshtunnelforwarder ssh address or host 機器b的ip 22 指定ssh登入的跳轉機的addr...
C 通過SSH隧道的方式連線遠端MySql 資料庫
出於安全考慮,我們的伺服器不會對外開放3306埠,這時候就需要用到ssh隧道的方式連線,需要ssh.net類庫 如下 using mysql.data.mysqlclient using renci.sshnet using system using system.collections.gener...
JDBC通過SSH遠端連線Mysql資料庫
test public void sshmysqltest throws exception catch exception e string driverclass null string url null string user null string password null 第一步 準備連...