sql >> Database teknologi >  >> RDS >> Mysql

SSH tunnelerer en MySQL-forbindelse ved hjælp af C#

Du skal forbinde MySQL'en til den bundne port på videresendelsen. dvs. til 2222.

Eller endnu mere semantisk korrekt, brug portFwld.BoundPort . Tilsvarende skal du bruge portFwld.BoundHost .

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

Bemærk også, at det giver mere mening at henvise til MySQL-værten som "localhost" i stedet for "example.com", da værtsnavnet er løst på serversiden. Og når du er på serversiden, vil du typisk ikke oprette forbindelse til "example.com", men til en "localhost".

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

Og selvfølgelig skal du holde SSH-sessionen åben, mens du har brug for tunnelen. Så du skal oprette forbindelse til DB'en inden for using blokere:

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



  1. Eliminer duplikerede kolonner i MySQL venstre joinforespørgsel

  2. Introduktion til OPENJSON med eksempler (SQL-server)

  3. Subtotaler og SQL

  4. Synkroniser 2 tabeller af forskellige databaser - MySQL