sql >> Databasteknik >  >> RDS >> Mysql

SSH tunnlar en MySQL-anslutning med C#

Du måste ansluta MySQL till den bundna porten för vidarebefordran. d.v.s. till 2222.

Eller ännu mer semantiskt korrekt, använd portFwld.BoundPort . På motsvarande sätt, använd portFwld.BoundHost .

DBConnect dbConnect = new DBConnect(portFwld.BoundHost, "database", "username", "password", portFwld.BoundPort);

Observera också att det är mer meningsfullt att hänvisa till MySQL-värden som "localhost", snarare än "example.com", eftersom värdnamnet är löst på serversidan. Och när du är på serversidan ansluter du vanligtvis inte till "example.com", utan till en "localhost".

var portFwld = new ForwardedPortLocal(IPAddress.Loopback.ToString(), 2222, "localhost", 3306); 

Och naturligtvis måste du hålla SSH-sessionen öppen medan du behöver tunneln. Så du måste ansluta till DB inom using blockera:

using (var client = new SshClient(connectionInfo))
{
    ...
    client.Connect();
    ...
    portFwld.Start();
    ... 
    DBConnect dbConnect = new DBConnect(portFwld.BoundHost, "database", "username", "password", portFwld.BoundPort);
}



  1. Infoga flera poster i Oracle

  2. Matcha två mysql-kolonner på alfatecken (ignorerar siffror i samma fält)

  3. Får PHP-fel Varning:fputcsv() förväntar sig att parameter 2 är array

  4. MySQL-fråga för flera tabeller