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

Barbara Streisand
Lepaskan: 2024-10-27 12:27:02
asal
387 orang telah melayarinya

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!