C# 访问云服务器数据库
在 C# 中访问云服务器数据库(如 MySQL、SQL Server 等)需通过数据库连接协议实现,核心步骤如下:
1. 准备数据库环境
- 在云服务器部署数据库(如 MySQL),确保开放远程访问权限:
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'password'; FLUSH PRIVILEGES; - 配置云服务器安全组,开放数据库端口(如 MySQL 默认
3306)。
2. C# 连接数据库(以 MySQL 为例)
(1) 安装 NuGet 包
在项目中安装 MySql.Data:
Install-Package MySql.Data
(2) 编写连接代码
using MySql.Data.MySqlClient;
using System;
class DatabaseAccess
{
static void Main()
{
// 连接字符串(替换为云服务器IP、用户名、密码、数据库名)
string connectionString = "server=云服务器公网IP;port=3306;user=用户名;password=密码;database=数据库名;";
using (MySqlConnection connection = new MySqlConnection(connectionString))
{
try
{
connection.Open();
Console.WriteLine("数据库连接成功!");
// 示例:查询数据
string sql = "SELECT * FROM Users";
MySqlCommand command = new MySqlCommand(sql, connection);
using (MySqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine($"ID: {reader["id"]}, Name: {reader["name"]}");
}
}
}
catch (Exception ex)
{
Console.WriteLine($"错误: {ex.Message}");
}
}
}
}
3. 关键注意事项
- 安全加固:
- 使用
SSL加密连接(在连接字符串添加SslMode=Required)。 - 敏感信息(如密码)通过环境变量或密钥管理服务存储,避免硬编码。
- 使用
- 连接池优化:
在连接字符串中配置连接池参数:"pooling=true;min pool size=5;max pool size=100;" - 错误处理:
使用try-catch捕获超时、认证失败等异常。
4. 其他数据库类型
- SQL Server:
使用System.Data.SqlClient包,连接字符串示例:"Server=云服务器IP;Database=数据库名;User Id=用户名;Password=密码;" - PostgreSQL:
使用Npgsql包,连接字符串格式:"Host=云服务器IP;Username=用户名;Password=密码;Database=数据库名;"
常见问题解决
-
连接超时
- 检查云服务器防火墙和安全组规则。
- 确认数据库服务正在运行(如
sudo systemctl status mysql)。
-
认证失败
- 验证用户名/密码是否匹配数据库权限。
- 检查是否允许远程访问(MySQL 需修改
my.cnf中bind-address=0.0.0.0)。
-
性能优化
- 使用异步操作
async/await(如ExecuteReaderAsync())。 - 通过
Dapper等 ORM 框架简化数据操作。
- 使用异步操作
提示:生产环境建议使用 SSH 隧道 或 VPN 增强安全性,避免直接暴露数据库端口到公网。
C# 访问云服务器数据库指南
584

被折叠的 条评论
为什么被折叠?



