用 C# 操作 MySQL 数据库备份还原,这个开源库MySqlBackup.NET真香!
|
admin
2025年7月15日 10:28
本文热度 125
|
一个用于在 C#、VB.NET 和 ASP.NET 中备份和还原 MySQL 数据库的多功能工具。
简介
MySqlBackup.NET 是一个用于备份和还原 MySQL 数据库的 .NET 库(DLL)。它兼容多个 MySQL 连接器——MySql.Data.DLL
、MySqlConnector.DLL
和 Devart.Express.MySql.DLL
,提供了比 MySqlDump 等工具更强大的控制和灵活性。
该库使用 C# 开发,支持任何 .NET 语言(如 VB.NET、F#),特别适用于无法使用 MySqlDump.exe 或 MySQL Workbench 的场景,例如基于 Web 的应用程序(ASP.NET)或具有简化界面的终端用户工具。
使用指南
可通过 NuGet 包管理器安装:
- • MySqlConnector:
PM> Install-Package MySqlBackup.NET.MySqlConnector
- • MySql.Data 连接器:
PM> Install-Package MySqlBackup.NET
- • 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 提供了:
- • Web 兼容性:无缝运行于 ASP.NET,绕过对可执行文件的托管限制。
依赖项
MySqlBackup.NET 需要以下 MySQL 连接器之一:
| | | |
MySqlConnector | MySqlConnector | | MySqlConnector.dll |
MySql.Data | MySQL Connector/Net | | MySql.Data.dll |
Devart Express | dotConnect for MySQL | | Devart.Data.dll |
配置技巧
Unicode 支持
- • 始终使用默认字符集
utf8mb4
,或者在不支持 utf8mb4
的旧版 MySQL 中使用 utf8
。 - • 建议在连接字符串中使用
convertzerodatetime=true
,以便更好地处理空日期时间值。
性能基准
在一个 416 MB 数据库(400,000 行,4 张表,InnoDB)上进行测试(Intel Core i7-4770S,3.10GHz,16GB RAM,三星 870 Evo 500GB SSD):
性能图表 mysqlbackup.net 2025-07-04MySqlBackup.NET v2.6 提供了具有竞争力的性能,尤其是在并行模式下,相比之前的版本有了显著提升。
·············· END ··············
该文章在 2025/7/15 10:28:11 编辑过