Mengapa kod C# saya gagal menyambung ke pangkalan data MySQL jauh melalui SSH, dan bagaimana saya boleh membetulkannya?

Patricia Arquette
Lepaskan: 2024-10-30 02:42:28
asal
780 orang telah melayarinya

Why does my C# code fail to connect to a remote MySQL database via SSH, and how can I fix it?

Menyambung ke MySQL dari .NET melalui Perpustakaan SSH.NET

Membina aplikasi web yang mengakses pangkalan data MySQL jauh melalui sambungan SSH memerlukan penggunaan perpustakaan seperti Renci.SshNet.dll dan mysql-connector-net-6.9.7. Artikel ini meneroka cara untuk mengatasi cabaran dalam menyambung ke MySQL menggunakan perpustakaan ini.

Masalah:

Kod C# yang disediakan gagal untuk mendapatkan data daripada pangkalan data MySQL pada alat kawalan jauh pelayan melalui sambungan SSH.

Penyelesaian:

Isunya terletak pada penggunaan tetapan Pelayan dan Port yang tidak betul dalam rentetan sambungan MySQL. Berikut ialah versi yang diperbetulkan:

<code class="csharp">MySqlConnectionStringBuilder connBuilder = new MySqlConnectionStringBuilder();
connBuilder.AllowBatch = true;
connBuilder.Server = "portal.RemoteServer.edu";
**// Change the Port to 22 (SSH connection port)**
connBuilder.Port = 22;
connBuilder.UserID = "LocalHostUserID";
connBuilder.Password = "LocalHostPassword";
connBuilder.Database = "DatabaseName";

// SSH connection details
var auth = new PasswordAuthenticationMethod("RemoteServerUsername", "RemoteServerPassword");
ConnectionInfo conInfo = new ConnectionInfo("portal.RemoteServer.edu", "RemoteServerUsername", auth);

using (SshClient client = new SshClient(conInfo))
{
    // ... (rest of the code remains the same)
}</code>
Salin selepas log masuk

Dengan menetapkan Pelayan kepada alamat sambungan SSH dan menukar Port kepada 22, sambungan diwujudkan melalui SSH dan operasi pangkalan data seterusnya boleh berjaya.

Nota Tambahan:

Dalam kod yang diperbetulkan, objek ForwardedPortLocal digunakan untuk pemajuan port antara 3306 (port MySQL) pada 127.0.0.1 dan 127.0.0.1:22. Ini membolehkan klien MySQL tempatan menyambung ke pangkalan data MySQL jauh melalui terowong SSH pada port 22.

Penyelesaian yang disediakan menganggap pelayan MySQL sedang mendengar pada port 3306 pada hos jauh. Jika pelayan MySQL anda mendengar pada port lain, pastikan anda melaraskan kod tersebut dengan sewajarnya.

Atas ialah kandungan terperinci Mengapa kod C# saya gagal menyambung ke pangkalan data MySQL jauh melalui SSH, dan bagaimana saya boleh membetulkannya?. 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