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

问题描述 投票:0回答:1

根据我的知识,我对 Putty、SSH、DDNS 等进行了大量研究,将动态 IP 从 My PC C# 独立应用程序连接到托管的 MySQL 数据库。由于它是动态IP,所以我每次都必须将IP地址列入白名单。有人可以帮我使用 C# 编码解决这个问题吗?我只想使用带有添加、更新、删除的连接字符串直接连接托管中的 MySQL。谢谢你。

c# mysql phpmyadmin connection-string remote-mysql
1个回答
0
投票

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

1- 安装 MySQL 连接器/NET: 如果尚未安装,则需要在 C# 项目中安装 MySQL Connector/NET 包。您可以通过 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 隧道或使用虚拟专用网络。

© www.soinside.com 2019 - 2024. All rights reserved.