桓楠百科网

编程知识、经典语录与百科知识分享平台

用 C# 操作 MySQL 数据库备份还原,这个开源库真香!

一个用于在 C#、VB.NET 和 ASP.NET 中备份和还原 MySQL 数据库的多功能工具。

简介

MySqlBackup.NET 是一个用于备份和还原 MySQL 数据库的 .NET 库(DLL)。它兼容多个 MySQL 连接器——MySql.Data.DLLMySqlConnector.DLLDevart.Express.MySql.DLL,提供了比 MySqlDump 等工具更强大的控制和灵活性。

该库使用 C# 开发,支持任何 .NET 语言(如 VB.NET、F#),特别适用于无法使用 MySqlDump.exe 或 MySQL Workbench 的场景,例如基于 Web 的应用程序(ASP.NET)或具有简化界面的终端用户工具。

使用指南

可通过 NuGet 包管理器安装:

  • o MySqlConnector:
    PM> Install-Package MySqlBackup.NET.MySqlConnector
  • o MySql.Data 连接器:
    PM> Install-Package MySqlBackup.NET
  • o Devart Express 连接器:
    PM> Install-Package MySqlBackup.Net.DevartExpress

实现代码

备份数据库

string constr = "server=localhost;user=root;pwd=1234;database=test1;convertzerodatetime=true;";
string filePath = @"C:\backup.sql";

using (var conn = new MySqlConnection(constr))
using (var cmd = conn.CreateCommand())
using (var mb = new MySqlBackup(cmd))
{
conn.Open();
mb.ExportToFile(filePath);
}

还原数据库

string constr = "server=localhost;user=root;pwd=1234;database=test1;convertzerodatetime=true;";
string filePath = @"C:\backup.sql";

using (var conn = new MySqlConnection(constr))
using (var cmd = conn.CreateCommand())
using (var mb = new MySqlBackup(cmd))
{
conn.Open();
mb.ImportFromFile(filePath);
}

为什么选择 MySqlBackup.NET?

与 MySQL Workbench(面向开发者)或 MySqlDump.exe(在 Web 环境中受限制)不同,MySqlBackup.NET 提供了:

  • o 终端用户友好性:预设参数实现一键式备份体验。
  • o Web 兼容性:无缝运行于 ASP.NET,绕过对可执行文件的托管限制。
  • o 编程控制:在 .NET 中精细控制输出。

依赖项

MySqlBackup.NET 需要以下 MySQL 连接器之一:

连接器
来源
许可证
DLL 文件
MySqlConnectorMySqlConnector
MIT
MySqlConnector.dll
MySql.DataMySQL Connector/Net
GPL
MySql.Data.dll
Devart ExpressdotConnect for MySQL
自定义 (常见问题)
Devart.Data.dll
, Devart.Data.MySql.dll

配置技巧

Unicode 支持

  • o 始终使用默认字符集 utf8mb4,或者在不支持 utf8mb4 的旧版 MySQL 中使用 utf8
  • o 建议在连接字符串中使用 convertzerodatetime=true,以便更好地处理空日期时间值。

性能基准

在一个 416 MB 数据库(400,000 行,4 张表,InnoDB)上进行测试(Intel Core i7-4770S,3.10GHz,16GB RAM,三星 870 Evo 500GB SSD):

性能图表 mysqlbackup.net 2025-07-04
任务
工具
平均时间
文件大小
备份
MySqlBackup.NET (并行)
~10.21秒
571.588 MB
备份
MySqlBackup.NET (单线程)
~15.72秒
571.588 MB
备份
mysqldump.exe
~6.76秒
566.976 MB
恢复
MySqlBackup.NET
~35.87秒
-
恢复
mysql.exe
~32.76秒
-

MySqlBackup.NET v2.6 提供了具有竞争力的性能,尤其是在并行模式下,相比之前的版本有了显著提升。


·············· END ··············



控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言