以下のコードセクションに示すように、OpenSSHキーファイルとSSH.Netライブラリを使用して設定されたSSHトンネルを使用して、リモートmysqlサーバーに接続しようとしています...
try
{
PrivateKeyFile pkfile = new PrivateKeyFile("C:\\Users\\OpenSSHKey", "mypassword");
var client = new SshClient("servername.com", 22, "myusername", pkfile);
client.Connect();
if (client.IsConnected)
{
var local = new ForwardedPortLocal(22, "localhost", 3306);
client.AddForwardedPort(local);
try
{
local.Start();
}
catch (SocketException se)
{
}
string connStr = "server=localhost;user=mysql_username;database=database_name;port=3306;password=MyDBPassword;";
MySqlConnection sql = new MySqlConnection(connStr);
sql.Ping();
try
{
sql.Open();
}
catch (MySqlException se)
{
}
}
}
catch(Exception e)
{
}
トンネルは、sql.Open() 呼び出しで次のエラー「指定された MySQL ホストのいずれにも接続できません」をスローするため、確実に設定されています...
MYSQL接続文字列で使用される資格情報を使用してパテまたはワークベンチを使用してデータベースに接続できるため、データベースがmysernameという名前のサーバー上にあると確信しています...誰かが助けてくれることを願っています