C#怎么连接MySQL数据库 C# MySql.Data驱动使用方法

来源:这里教程网 时间:2026-02-21 17:34:21 作者:

用 C# 连接 MySQL 数据库,最常用、官方推荐的方式是使用 MySql.Data 官方驱动(由 Oracle 维护)。它支持 .NET Framework 和 .NET Core/.NET 5+(需对应版本),通过

MySqlConnection
MySqlCommand
等类操作数据库。

安装 MySql.Data 包

在项目中引入驱动是第一步。推荐使用 NuGet 包管理器:

Visual Studio 中:右键项目 → “管理 NuGet 包” → 搜索 MySql.Data → 安装最新稳定版(如 8.3.x) 命令行(.NET CLI):
dotnet add package MySql.Data
注意:.NET 6/7/8 项目请确认安装的是支持该目标框架的版本(新版 MySql.Data 已全面支持 .NET Standard 2.0+ 和 .NET 5+)

编写连接字符串

连接字符串包含服务器地址、端口、数据库名、用户名、密码等关键信息。格式如下:

Server=localhost;Port=3306;Database=testdb;Uid=root;Pwd=your_password; Server:MySQL 服务地址(可为 localhost、127.0.0.1 或远程 IP) Port:默认 3306,若修改过需同步填写 Database:要连接的具体数据库名(可为空,后续再选库) Uid / Pwd:用户名和密码(建议开发时用专用账号,生产环境避免硬编码) 安全提示:密码勿写死在代码里,推荐用配置文件(appsettings.json)或环境变量加载

执行简单查询示例

以下是一个完整的控制台小例子,连接后查询一条数据:

using MySql.Data.MySqlClient;
<p>string connStr = "Server=localhost;Port=3306;Database=testdb;Uid=root;Pwd=123456;";
using (var conn = new MySqlConnection(connStr))
{
try
{
conn.Open();
Console.WriteLine("✅ 连接成功");</p><pre class="brush:php;toolbar:false;">    using (var cmd = new MySqlCommand("SELECT VERSION(), DATABASE();", conn))
    {
        var result = cmd.ExecuteScalar();
        Console.WriteLine($"MySQL 版本与当前库:{result}");
    }
}
catch (MySqlException ex)
{
    Console.WriteLine($"❌ 数据库错误:{ex.Message}");
}

}

务必用
using
确保连接和命令对象被正确释放
ExecuteScalar()
适合查单值;
ExecuteReader()
用于多行结果;
ExecuteNonQuery()
用于增删改
异常类型优先捕获
MySqlException
,便于针对性处理连接失败、SQL 错误等

常见问题与注意点

“Unable to connect to any of the specified MySQL hosts”:检查 MySQL 是否运行、防火墙是否放行、用户是否授权远程访问(
CREATE USER 'user'@'%' IDENTIFIED BY 'pwd'; GRANT ALL ON *.* TO 'user'@'%'; FLUSH PRIVILEGES;
字符集乱码:在连接字符串末尾加
;Charset=utf8mb4;
(推荐),并确保数据库/表也设为 utf8mb4
SSL 连接拒绝:开发环境可加
;SslMode=none;
临时绕过(生产环境应配置合法证书)
不建议长期持有
MySqlConnection
实例,按需创建、及时释放——连接池已由驱动自动管理

基本上就这些。只要包装对、字符串准、异常兜住,C# 连 MySQL 很稳。实际项目中再配合 Dapper 或 Entity Framework Core 会更高效,但底层仍是 MySql.Data 在工作。

相关推荐