Mysql
 sql >> Base de données >  >> RDS >> Mysql

Tunnellisation SSH d'une connexion MySQL à l'aide de C#

Vous devez connecter le MySQL au port lié de la redirection. C'est à dire. au 2222.

Ou même plus sémantiquement correct, utilisez portFwld.BoundPort . De manière équivalente, utilisez portFwld.BoundHost .

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

Notez également qu'il est plus logique de se référer à l'hôte MySQL en tant que "localhost", plutôt que "example.com", car le nom d'hôte est résolu côté serveur. Et lorsque vous êtes côté serveur, vous ne vous connectez généralement pas à "example.com", mais à un "localhost".

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

Et bien sûr, vous devez garder la session SSH ouverte pendant que vous avez besoin du tunnel. Vous devez donc vous connecter à la base de données dans le using bloquer :

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