一個用于在 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 編輯過