Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Menyambung ke Pangkalan Data MySQL Jauh melalui SSH.NET dalam .NET?

Bagaimana untuk Menyambung ke Pangkalan Data MySQL Jauh melalui SSH.NET dalam .NET?

Barbara Streisand
Barbara Streisandasal
2024-10-27 12:27:02471semak imbas

How to Connect to a Remote MySQL Database via SSH.NET in .NET?

Menyambung ke MySQL dari .NET melalui SSH.NET

Masalah:

Pengguna hadapi Schwierigkeiten apabila cuba mendapatkan semula data daripada pangkalan data MySQL yang terletak pada pelayan jauh melalui SSH menggunakan gabungan perpustakaan MySQL Connector/NET dan SSH.NET. Walaupun telah mewujudkan sambungan SSH, kod tersebut gagal menghasilkan hasil daripada pertanyaan pangkalan data.

Penyelesaian:

Untuk menangani isu ini, adalah penting untuk mengkonfigurasi port yang dimajukan dengan betul. Kod di bawah menawarkan pendekatan yang diperhalusi:

<code class="csharp">using(var client = new SshClient("ssh server id", "sshuser", "sshpassword")) // establish SSH connection to server hosting MySQL
{
    client.Connect();
    if (client.IsConnected)
    {
        var portForwarded = new ForwardedPortLocal("127.0.0.1", 3306, "127.0.0.1", 3306);
        client.AddForwardedPort(portForwarded);
        portForwarded.Start();
        using (MySqlConnection con = new MySqlConnection("SERVER=127.0.0.1;PORT=3306;UID=someuser;PASSWORD=somepass;DATABASE=Dbname"))
        {
            using (MySqlCommand com = new MySqlCommand("SELECT * FROM cities", con))
            {
                com.CommandType = CommandType.CommandText;
                DataSet ds = new DataSet();
                MySqlDataAdapter da = new MySqlDataAdapter(com);
                da.Fill(ds);
                foreach (DataRow drow in ds.Tables[0].Rows)
                {
                    Console.WriteLine("From MySql: " + drow[1].ToString());
                }
            }
        }
        client.Disconnect();
    }
    else
    {
        Console.WriteLine("Client cannot be reached...");
    }
}</code>

Dalam kod yang dikemas kini ini:

  • Penubuhan sambungan SSH kekal tidak berubah.
  • Port yang dimajukan dikonfigurasikan kepada majukan port tempatan 3306 ke port jauh 3306 pada localhost. Ini memastikan bahawa pertanyaan pangkalan data dihalakan melalui terowong SSH.
  • Seterusnya, MySqlConnection diwujudkan ke port tempatan 3306, membenarkan aplikasi menyambung ke pangkalan data MySQL jauh.
  • Pelaksanaan pertanyaan pangkalan data , pemprosesan hasil dan paparan data dikendalikan dengan cara yang standard.

Kod yang disemak ini secara berkesan menyambung ke pangkalan data, mendapatkan semula data dan memaparkannya, menyediakan mekanisme yang boleh dipercayai untuk mengakses pangkalan data MySQL jauh melalui SSH dalam aplikasi .NET.

Atas ialah kandungan terperinci Bagaimana untuk Menyambung ke Pangkalan Data MySQL Jauh melalui SSH.NET dalam .NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn