Как подключиться к 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, который может помочь.
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 .