Me dieron un enlace para usar esta biblioteca para la conexión a través de la conexión SSH a una base de datos MySQL con C#.Conexión SSH a MySQL usando la biblioteca SSH.NET
Aquí está el LINK a la biblioteca ya que muchos de ustedes encontrarán esto interesante ya que no necesitan abrir un canal SSH manualmente.
Esta es una biblioteca muy detallada y tiene muchas funciones, pero lo que quiero hacer es bastante simple. Solo quiero abrir un canal SSH cada vez que quiero escribir en la base de datos.
Mientras buscaba a través de la fuente que se proporciona vine hasta esta parte del código que se puede encontrar en TestSshCommand.cs y yo creo que pueda usar esta parte de mis conexiones pero necesito su ayuda para Haz que funcione ya que tengo mi cadena de conexión. No sé cómo conectarla por completo.
Código:
public void Test_Execute_SingleCommand()
{
using (var client = new SshClient(Resources.HOST, Resources.USERNAME, Resources.PASSWORD))
{
client.Connect();
var result = ExecuteTestCommand(client);
client.Disconnect();
Assert.IsTrue(result);
}
Mi código para connectiong al canal no SSH es:
con.ConnectionString = ConfigurationManager.ConnectionStrings["Con2"].ConnectionString;
con.Open();
cmd = new MySqlCommand("SELECT COUNT(*) FROM " + ConfigSettings.ReadSetting("main"), con);
//...... more of the code
Entonces, ¿cómo puedo combinar este código a la anterior por lo que primero se puede abrir un canal SSH y entonces ejecuta mi consulta?
¿Es necesario poner mi código dentro conectar y desconectar funciones?
Una más creo que he agregado .dll archivo dentro de las referencias y debo decir que ninguna de las importaciones está funcionando. Entonces, ¿alguien puede descargar la biblioteca y probar este código simple para ver si hay referencias trabajando en su proyecto y para que todos (que son muchos) puedan tener una solución de trabajo para sus proyectos futuros?
EDIT:
Este es mi código que yo estaba tratando de hacer más adelante. Mi conexión SSH funciona ahora solo necesita combinar esos dos para que funcione.
El problema es que necesito tener una base de datos localmente en mi pc y necesito conectarme al servidor. Así reenvío de puerto no funcionará como somone dice en el foro que no puedo puerto hacia adelante mientras MySQL ya tiene puerto para ejecutar
using (var client = new SshClient("cpanel****", "******", "******"))
{
client.Connect();
con = new MySqlConnection(GetConnectionString());
con.Open();
cmd = new MySqlCommand(String.Format("insert into {0} values (null, ?Parname , ?Parname2, ?Parname3, ?Parname4, ?Parname5, ?Parname6, ?Parname7);", ConfigSettings.ReadSetting("main")), con);
cmd.Parameters.Add("?Parname", MySqlDbType.Double).Value = Math.Round(deciLat, 5);
// ... more parameters
cmd.ExecuteNonQuery();
client.Disconnect();
}
Probablemente deberías usar la biblioteca para reenviar el puerto remoto a local y usarlo en tu cadena de conexión. – user629926