SSH.NET 라이브러리를 통해 .NET에서 MySQL에 연결
SSH 연결을 통해 원격 MySQL 데이터베이스에 액세스하는 웹 애플리케이션을 구축하려면 다음을 사용해야 합니다. Renci.SshNet.dll 및 mysql-connector-net-6.9.7과 같은 라이브러리. 이 문서에서는 이러한 라이브러리를 사용하여 MySQL에 연결할 때 발생하는 문제를 해결하는 방법을 살펴봅니다.
문제:
제공된 C# 코드가 원격의 MySQL 데이터베이스에서 데이터를 검색하지 못합니다.
해결 방법:
문제는 MySQL 연결 문자열에서 서버 및 포트 설정을 잘못 사용하는 데 있습니다. 수정된 버전은 다음과 같습니다.
<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>
서버를 SSH 연결 주소로 설정하고 포트를 22로 변경하면 SSH를 통해 연결이 설정되고 후속 데이터베이스 작업이 성공할 수 있습니다.
추가 참고 사항:
수정된 코드에서 ForwardedPortLocal 개체는 127.0.0.1과 127.0.0.1:22의 3306(MySQL 포트) 사이의 포트 전달에 사용됩니다. 이를 통해 로컬 MySQL 클라이언트는 포트 22의 SSH 터널을 통해 원격 MySQL 데이터베이스에 연결할 수 있습니다.
제공된 솔루션은 MySQL 서버가 원격 호스트의 포트 3306에서 수신 대기하고 있다고 가정합니다. MySQL 서버가 다른 포트에서 수신하는 경우 이에 따라 코드를 조정해야 합니다.
위 내용은 내 C# 코드가 SSH를 통해 원격 MySQL 데이터베이스에 연결하지 못하는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!