一个用于在 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 包管理器安装:
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 连接器之一:
MySqlConnector | MySqlConnector | MySqlConnector.dll | |
MySql.Data | MySQL Connector/Net | MySql.Data.dll | |
Devart Express | dotConnect 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 v2.6 提供了具有竞争力的性能,尤其是在并行模式下,相比之前的版本有了显著提升。
·············· END ··············