Anda harus menghubungkan MySQL ke port terikat dari penerusan. Yaitu. ke 2222.
Atau bahkan lebih benar secara semantik, gunakan portFwld.BoundPort
. Sama halnya, gunakan portFwld.BoundHost
.
DBConnect dbConnect = new DBConnect(portFwld.BoundHost, "database", "username", "password", portFwld.BoundPort);
Perhatikan juga bahwa lebih masuk akal untuk merujuk ke host MySQL sebagai "localhost", daripada "example.com", karena nama host diselesaikan di sisi server. Dan saat berada di sisi server, Anda biasanya tidak akan terhubung ke "example.com", tetapi ke "localhost".
var portFwld = new ForwardedPortLocal(IPAddress.Loopback.ToString(), 2222, "localhost", 3306);
Dan tentu saja Anda harus menjaga sesi SSH tetap terbuka saat Anda membutuhkan terowongan. Jadi Anda harus terhubung ke DB dalam using
blok:
using (var client = new SshClient(connectionInfo))
{
...
client.Connect();
...
portFwld.Start();
...
DBConnect dbConnect = new DBConnect(portFwld.BoundHost, "database", "username", "password", portFwld.BoundPort);
}