このライブラリを使用して、SSH 接続を介して C# を使用して MySQL データベースに接続するためのリンクが提供されました。
SSH チャネルを手動で開く必要がないため、多くの人が興味深いと思うライブラリへのリンクを次に示します。
これは非常に詳細なライブラリであり、多くの機能を備えていますが、私がやりたいことは非常に単純です。データベースに書き込むたびに SSH チャネルを開きたいだけです。
提供されたソースを検索しているときに、TestSshCommand.csにあるコードのこの部分にたどり着きました。この部分を接続に使用できると思いますが、私が持っているように機能させるにはあなたの助けが必要です私の接続文字列すべてを接続する方法がわかりません。
コード:
public void Test_Execute_SingleCommand()
{
using (var client = new SshClient(Resources.HOST, Resources.USERNAME, Resources.PASSWORD))
{
client.Connect();
var result = ExecuteTestCommand(client);
client.Disconnect();
Assert.IsTrue(result);
}
非 SSH チャネルに接続するための私のコードは次のとおりです。
con.ConnectionString = ConfigurationManager.ConnectionStrings["Con2"].ConnectionString;
con.Open();
cmd = new MySqlCommand("SELECT COUNT(*) FROM " + ConfigSettings.ReadSetting("main"), con);
//...... more of the code
では、このコードを上記のコードと組み合わせて、最初に SSH チャネルを開き、次にクエリを実行できるようにするにはどうすればよいでしょうか?
接続関数と切断関数内にコードを配置する必要がありますか?
もう1つ、参照内に.dllファイルを追加したと思いますが、インポートが機能していないと言わざるを得ません。誰かがライブラリをダウンロードして、この簡単なコードを試して、あなたのプロジェクトで参照が機能しているかどうかを確認し、誰もが将来のプロジェクトで有効なソリューションを持てるようにしてください。
編集:
これは、後でやろうとしていた私のコードです。私のSSH接続は、これら2つを組み合わせるだけで機能するようになりました。
問題は、PC にローカルに 1 つのデータベースが必要で、サーバーに接続する必要があることです。そのため、誰かがフォーラムで、mysql が実行用のポートを既に持っている間はポート転送できないと言っているように、ポート転送は機能しません。
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();
}