>  기사  >  데이터 베이스  >  SSH.NET 라이브러리를 사용하여 .NET에서 원격 MySQL 데이터베이스에 연결하고 데이터를 검색하는 방법은 무엇입니까?

SSH.NET 라이브러리를 사용하여 .NET에서 원격 MySQL 데이터베이스에 연결하고 데이터를 검색하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-29 18:49:08827검색

How to Connect to a Remote MySQL Database from .NET Using SSH.NET Library and Retrieve Data?

SSH.NET 라이브러리를 사용하여 .NET에서 MySQL에 연결

목적 이해

목표는 웹 페이지( .NET/C#) 및 SSH 연결을 통한 원격 MySQL 데이터베이스.

코드 분석 및 문제 해결

제공된 코드는 올바른 자격 증명과 포트 구성을 사용하여 SSH를 통해 MySQL Workbench에 성공적으로 연결됩니다. 그러나 원격 서버에서 데이터를 검색하는 데 실패합니다.

개정된 접근 방식

다음 코드를 사용하면 문제를 해결하고 원격 MySQL 데이터베이스에 연결하여 데이터를 검색할 수 있습니다.

<code class="csharp">using(var client = new SshClient("ssh server id", "sshuser", "sshpassword"))
{
    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)를 로컬 시스템으로 전달합니다. MySQL 데이터베이스와의 통신을 활성화합니다.
  • MySqlConnection 개체는 전달된 포트와 적절한 데이터베이스 자격 증명을 사용하여 생성됩니다.
  • MySqlCommand 개체는 지정된 테이블에서 데이터를 검색하기 위해 실행됩니다.
  • 검색된 데이터가 콘솔에 표시됩니다.

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.