Как подключиться к mysql с C# через SSH

Как я могу подключиться к базе данных mysql через C#,

теперь это моя строка подключения:

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

Как поместить строку SSH в эту форму, поскольку она должна быть чем-то вроде:

Хоста СШ, СШ логин, пароль, имя сервера MySQL, имя пользователя MySQL, пароль MySQL, порт

3 ответов


Я не думаю, что MySql и MySqlClient поддерживают такую вещь. Строка подключения для базы данных. Вам понадобится SSH-клиент для подключения сначала к SSH-серверу, а затем найти способ маршрутизации Sql-соединения по этому туннелю.

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

Я не думаю, что есть библиотека Microsoft .Net для обработки SSH-соединений, но есть открытый исходный код проект на 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-соединение, а затем использовать стандартную строку подключения, как то, что у вас есть в вашем вопросе.

чтобы установить SSH-соединение через C# , вы можете использовать библиотеку типа sharpSsh .