0

サーバー上のmysqlデータベースにSSHチャネルを介して接続したい。

このSSH.Netライブラリをダウンロードしました。

これは私が試したことであり、安全な接続が確立された後に機能すると思いました.

SSH 接続は確立されていますが、データベースへの通常の接続が実行されません。

だから私のコードをチェックしてください:

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();
           }
4

1 に答える 1

1

これがチュートリアルhttp://georgelantz.com/2007/09/10/access-mysql-through-ssh-tunnel-in-a-windows-net-application/で、合理的に聞こえます。

基本的な考え方は、トンネルとのSSH接続(別名ポート転送)を確立してから、MySQL接続をローカルホストにポイントすることです。

SSHトンネルは、localhost:XXへの接続をsshサーバーポート:YYにリダイレクトします。したがって、ポートYYはmysql接続ポートになり、接続文字列ではlocalhost:XXを使用します。

使用しているSSHライブラリもポートフォワーディングをサポートしているようですので、それも機能させることができるかもしれません。

于 2012-05-30T16:54:57.820 に答える