.NET에서 SSH.NET을 통해 원격 MySQL 데이터베이스에 연결하는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2024-10-27 12:27:02
원래의
387명이 탐색했습니다.

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

SSH.NET을 통해 .NET에서 MySQL에 연결

문제:

사용자가 직면하는 문제 MySQL Connector/NET 및 SSH.NET 라이브러리의 조합을 사용하여 SSH를 통해 원격 서버에 있는 MySQL 데이터베이스에서 데이터를 검색하려고 시도할 때 발생합니다. SSH 연결을 설정했음에도 불구하고 코드가 데이터베이스 쿼리 결과를 생성하지 못합니다.

해결책:

이 문제를 해결하려면 전달된 포트를 구성하는 것이 중요합니다. 바르게. 아래 코드는 세련된 접근 방식을 제공합니다.

<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>
로그인 후 복사

이 업데이트된 코드에서는

  • SSH 연결 설정은 변경되지 않습니다.
  • 전달되는 포트는 다음과 같이 구성됩니다. 로컬 포트 ​​3306을 localhost의 원격 포트 3306으로 전달합니다. 이렇게 하면 데이터베이스 쿼리가 SSH 터널을 통해 라우팅됩니다.
  • 그 후 MySqlConnection이 로컬 포트 ​​3306에 설정되어 애플리케이션이 원격 MySQL 데이터베이스에 연결할 수 있습니다.
  • 데이터베이스 쿼리 실행 , 결과 처리 및 데이터 표시는 표준 방식으로 처리됩니다.

이 수정된 코드는 효과적으로 데이터베이스에 연결하고, 데이터를 검색하고, 표시하여, 원격 MySQL 데이터베이스에 액세스하기 위한 안정적인 메커니즘을 제공합니다. .NET 애플리케이션의 SSH.

위 내용은 .NET에서 SSH.NET을 통해 원격 MySQL 데이터베이스에 연결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!