Musisz podłączyć MySQL do portu związanego z przekierowaniem. Tj. do 2222.
Lub jeszcze bardziej semantycznie poprawny, użyj portFwld.BoundPort
. Odpowiednio użyj portFwld.BoundHost
.
DBConnect dbConnect = new DBConnect(portFwld.BoundHost, "database", "username", "password", portFwld.BoundPort);
Należy również zauważyć, że bardziej sensowne jest odwoływanie się do hosta MySQL jako „localhost”, a nie „example.com”, ponieważ nazwa hosta jest rozwiązywana po stronie serwera. A po stronie serwera zazwyczaj nie łączysz się z „example.com”, ale z „localhost”.
var portFwld = new ForwardedPortLocal(IPAddress.Loopback.ToString(), 2222, "localhost", 3306);
I oczywiście musisz mieć otwartą sesję SSH, gdy potrzebujesz tunelu. Musisz więc połączyć się z bazą danych w ramach using
blok:
using (var client = new SshClient(connectionInfo))
{
...
client.Connect();
...
portFwld.Start();
...
DBConnect dbConnect = new DBConnect(portFwld.BoundHost, "database", "username", "password", portFwld.BoundPort);
}