>  기사  >  데이터 베이스  >  다음은 기사 내용과 일치하는 몇 가지 영어 질문과 답변 제목입니다. * SSH.NET을 통해 MySQL 데이터베이스에서 데이터를 검색할 수 없는 이유는 무엇입니까? * SSH.NET을 사용한 MySQL 연결 문제 해결: 사례 연구 * Rem에 올바르게 연결하는 방법

다음은 기사 내용과 일치하는 몇 가지 영어 질문과 답변 제목입니다. * SSH.NET을 통해 MySQL 데이터베이스에서 데이터를 검색할 수 없는 이유는 무엇입니까? * SSH.NET을 사용한 MySQL 연결 문제 해결: 사례 연구 * Rem에 올바르게 연결하는 방법

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-02 08:59:02347검색

以下是几个符合文章内容的英文问答类标题:

* Why Am I Unable to Retrieve Data from a MySQL Database Through SSH.NET?
* Troubleshooting MySQL Connection Issues with SSH.NET: A Case Study
* How to Correctly Connect to a Remote MySQL Database via SSH.NET in C#
* Why Does My C# C

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

문제:

An ASP.NET/C# 웹 페이지가 Renci.SshNet 및 mysql-connector-net 라이브러리를 사용하여 SSH 연결을 통해 원격 서버의 MySQL 데이터베이스를 쿼리하려고 합니다. 그러나 코드는 데이터베이스에서 데이터를 검색하지 않습니다.

코드 조각:

제공된 C# 코드는 SSH 연결 설정, 포트 전달 및 그런 다음 MySQL 데이터베이스에 연결하십시오. 그러나 데이터베이스에서 데이터를 검색하는 데 실패합니다.

<code class="csharp">using(var client = new SshClient("ssh server id", "sshuser", "sshpassword")) // establishing ssh connection to server where MySql is hosted
{
    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>

해결책:

문제를 해결하려면 코드를 다음과 같이 수정하면 됩니다.

  1. MySQL 데이터베이스에 연결하는 데 사용된 연결 문자열에 잘못된 구문이 있습니다. 연결 문자열을 다음으로 변경합니다.
MySqlConnectionStringBuilder connBuilder = new MySqlConnectionStringBuilder();
connBuilder.AllowBatch = true;
connBuilder.Server = "portal.RemoteServer.edu";
connBuilder.Port = 3306;
connBuilder.UserID = "RemoteServerUsername";
connBuilder.Password = "RemoteServerPassword";
connBuilder.Database = "DatabaseName";
  1. SSH 연결이 제대로 설정되지 않았습니다. SSH 연결 매개변수가 올바른지, 클라이언트가 원격 서버에 성공적으로 연결되는지 확인하세요.

수정된 코드:

<code class="csharp">using(var client = new SshClient("portal.RemoteServer.edu", "RemoteServerUsername", "RemoteServerPassword")) // establishing ssh connection to server where MySql is hosted
{
    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(connBuilder.ConnectionString))
        {
            using (MySqlCommand com = new MySqlCommand("SELECT * FROM Clients", 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.NET을 통해 MySQL 데이터베이스에서 데이터를 검색할 수 없는 이유는 무엇입니까? * SSH.NET을 사용한 MySQL 연결 문제 해결: 사례 연구 * Rem에 올바르게 연결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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