首页  >  问答  >  正文

C#独立应用程序直接远程访问MySQL到托管服务器

<p>根据我的了解,我在Putty、SSH、DDNS等方面进行了大量的研究,以便将我的PC C#独立应用程序的动态IP连接到托管的MySQL数据库。由于它是动态IP,我每次都必须将IP地址添加到白名单中。有人可以帮我使用C#编码来解决这个问题吗?我只想直接使用连接字符串连接托管的MySQL,并进行添加、更新、删除操作。谢谢。</p>
P粉033429162P粉033429162430 天前520

全部回复(1)我来回复

  • P粉821231319

    P粉8212313192023-08-17 13:01:58

    要从您的C#独立应用程序连接到托管在远程服务器上的MySQL数据库,您可以使用MySQL Connector/NET库。该库提供了建立连接和执行各种数据库操作所需的工具。以下是您可以执行的方法:

    1- 安装MySQL Connector/NET: 如果您尚未安装MySQL Connector/NET包,请在C#项目中安装它。您可以通过NuGet软件包管理器进行安装。搜索“MySql.Data”,并安装官方的MySQL Connector/NET包。

    2- 连接字符串: 您需要构建一个连接字符串,其中包含连接到MySQL数据库所需的详细信息。由于您提到您的IP是动态的,并且每次都需要将其添加到白名单中,您可能需要每次调整连接字符串。以下是连接字符串的基本示例:

    string server = "your-server-ip";
    string database = "your-database-name";
    string uid = "your-username";
    string password = "your-password";
    
    string connectionString = $"Server={server};Database={database};Uid={uid};Pwd={password};";

    3- 执行数据库操作: 准备好连接字符串后,您可以使用MySQL Connector/NET库执行数据库操作,如INSERT、UPDATE、DELETE等。以下是执行INSERT操作的示例:

    using MySql.Data.MySqlClient;
    
    // ...
    
    using (MySqlConnection connection = new MySqlConnection(connectionString))
    {
        connection.Open();
    
        string query = "INSERT INTO your_table (column1, column2) VALUES (@val1, @val2)";
        using (MySqlCommand command = new MySqlCommand(query, connection))
        {
            command.Parameters.AddWithValue("@val1", value1);
            command.Parameters.AddWithValue("@val2", value2);
    
            command.ExecuteNonQuery();
        }
    }

    类似地,您可以修改UPDATE和DELETE操作的查询。

    请记住,出于安全原因,最好使用参数化查询(如上所示)来防止SQL注入攻击。

    关于动态IP问题,如果您的IP地址经常更改并且每次都需要将其添加到白名单中,您可以考虑设置VPN或使用动态DNS(DDNS)服务,以获取与您的动态IP相对应的一致主机名。这可以为您提供更稳定的连接点并简化白名单设置。此外,您可能还希望与您的托管提供商讨论是否有更安全和可管理的远程连接选项,例如设置SSH隧道或使用虚拟专用网络。

    回复
    0
  • 取消回复