2012-05-29 12 views
6

Wie kann ich zu einer MySQL-Datenbank Trog C# verbinden,Wie mysql von C# über SSH verbinden

Dies ist meine Verbindungszeichenfolge jetzt:

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

Wie SSH-String in dieser Form zu setzen, wie es braucht wie etwas zu sein:

SSH Hostname, SSH Benutzername, SSH-Passwort, Mysql Hostname, Mysql Benutzername, Passwort Mysql, Port

+1

Ich wäre versucht, einen SSH-Proxy zu erstellen/vorwärts * erste * und dann nur, dass verwenden ... –

+0

sicher, geben Sie mir einige weitere Informationen, wie das –

+0

Blick auf die gemacht wird [ 'plink'] (http://linux.die.net/man/1/plink) Programm, das als Teil von Putty kommt. Vielleicht nicht die eleganteste, aber es sollte funktionieren. Der Parameter "-L" (einen lokalen Port weiterleiten) ist hier von Interesse. Anmeldeinformationen können auf verschiedene Arten bereitgestellt werden. Ich empfehle die Verwendung von PKI. –

Antwort

5

Ich glaube nicht, dass MySql und der MySqlClient so etwas unterstützen. Die Verbindungszeichenfolge ist speziell für die Datenbank. Sie benötigen einen SSH-Client, um sich zuerst mit dem SSH-Server zu verbinden und dann eine Möglichkeit zu finden, die Sql-Verbindung über diesen Tunnel zu routen.

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

Ich glaube nicht, gibt es eine Microsoft .NET-Bibliothek für SSH-Verbindungen der Handhabung, aber es ist ein Open-Source-Projekt auf-Code Plex, die helfen können.

http://sshnet.codeplex.com/

+0

+1 verwenden ich wusste nicht, Existenz von sshnet. Gut zu wissen . – aleroot

+1

nette Bibliothek, ich werde versuchen, um zu sehen, wie es funktioniert –

1

Sie nicht einen SSH-Proxy oder SSH-Anmeldeinformationen angeben können, s In der Verbindungszeichenfolge müssen Sie zuerst die SSH-Verbindung herstellen und dann eine Standardverbindungszeichenfolge wie in Ihrer Frage verwenden.

Um eine SSH-Verbindung über C# herzustellen, können Sie eine Bibliothek wie sharpSsh verwenden.

+0

Hast du ein Beispiel dafür, wie die SSH-Verbindung aufgebaut werden kann [first]? –

+0

Vielen Dank für Ihre Antwort, aber das Problem besteht darin, diese Art von Verbindung herzustellen. Wie gesagt, ich muss Kitt benutzen. Aber es ist ein bisschen kompliziert –

+0

Sie können zum Beispiel sharpSsh – aleroot

1
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(); 
Verwandte Themen