如何通过SSH从C#连接到mysql

如何通过C#连接到mysql数据库,

这是我的连接字符串:

connectionString="server=localhost;port=3306;user id=root;Password=*****;database=Data" providerName="MySql.Data.MySqlClient" 

如何将SSH字符串放在这个表单中,因为它需要是这样的:

SSH主机名,SSH用户名,SSH密码,Mysql主机名,Mysql用户名,Mysql密码,端口

我不认为MySql和MySqlClient支持这样的事情。 连接字符串专门用于数据库。 您将需要一个SSH客户端首先连接到SSH服务器,然后找到一种方法来通过该隧道路由Sql连接。

http://www.howtogeek.com/howto/ubuntu/access-your-mysql-server-remotely-over-ssh/

我认为没有用于处理SSH连接的Microsoft .Net库,但Code Plex上有一个可能有用的开源项目。

http://sshnet.codeplex.com/

 PasswordConnectionInfo connectionInfo = new PasswordConnectionInfo(hostAdres, hostNaam, wachtwoord); connectionInfo.Timeout = TimeSpan.FromSeconds(30); client = new SshClient( connectionInfo); client.Connect(); ForwardedPortLocal portFwld = new ForwardedPortLocal ("127.0.0.1", Convert.ToUInt32(hostpoort), DataBaseServer, Convert.ToUInt32(remotepoort)); client.AddForwardedPort(portFwld); portFwld.Start(); // using Renci.sshNet connection = new MySqlConnection("server = " + "127.0.0.1" + "; Database = database; password = PWD; UID = yourname; Port = 22"); connection.Open(); 

您无法在连接字符串中指定SSH代理或SSH凭据,您必须先建立SSH连接,然后使用标准连接字符串,就像您在问题中所使用的那样。

要通过C#建立SSH连接,您可以使用像sharpSsh这样的库。