1

以下のコードセクションに示すように、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という名前のサーバー上にあると確信しています...誰かが助けてくれることを願っています

4

1 に答える 1