在 C# 中使用 MySqlBackup.NET 在 CentOS (Linux/Ubuntu) 上备份和还原 MySQL 数据库
使用 MySqlBackup.NET 构建 .NET Core Linux 项目
引言
MySqlBackup.NET 是一个用 C# 编写的开源项目,用于执行 MySQL 数据库的备份和还原。本文将重点介绍如何将此库构建为在 CentOS (Linux/Ubuntu) 上运行。
Using the Code
思路是在 .NET Core 中构建一个项目,并将其发布为 Linux 包。
MySqlBackup.NET
是一个开源的 .NET 库 (C#/VB.NET),用于备份和还原 MySQL 数据库。
在这里,我们研究如何将 MySqlBackup.NET
在 CentOS/Linux 上运行,以执行 MySQL 数据库的备份和还原。
我们可以使用一个简单的控制台应用程序来测试它。
首先创建一个 .NET Core 控制台 Linux 项目
检查项目属性,确保项目使用 .NET Core Framework 构建
安装 MySqlBackup.NET
的 NuGet 包 (以及 MySqlConnector
)
一个简单的示例代码进行测试
static void Main(string[] args)
{
try
{
Console.WriteLine("Enter the MySQL Connection String: ");
Console.WriteLine();
string constr = Console.ReadLine();
Console.WriteLine();
Console.WriteLine();
Console.WriteLine(("Begin MySQL backup process..."));
string folder = Environment.CurrentDirectory;
string file = Path.Combine(folder, "backup.sql");
using (MySqlConnection conn = new MySqlConnection(constr))
{
using (MySqlCommand cmd = new MySqlCommand())
{
using (MySqlBackup mb = new MySqlBackup(cmd))
{
conn.Open();
cmd.Connection = conn;
mb.ExportToFile(file);
conn.Close();
}
}
}
Console.WriteLine("MySQL backup file saved at: " + file);
}
catch (Exception ex)
{
Console.WriteLine();
Console.WriteLine("Error: " + ex.Message);
}
Console.WriteLine();
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
}
接下来,发布项目为 .NET Core (Linux)
有两种方法可以为 Linux 构建 .NET Core 项目
- 方法 1:将包与安装在 CentOS 上的运行时支持一起发布
- 方法 2:发布为“自包含”二进制文件
方法 1:将包与安装在 CentOS 上的运行时支持一起发布
首先,发布项目。
将目标运行时设置为 linux-x64
在上面的示例中,Linux 编译后的二进制文件位于
\bin\Release\netcoreapp3.1\publish\linux-x64
将上面的文件夹中的 DLL 复制并粘贴到您的 CentOS
在 CentOS 上,确保您已通过以下命令安装了 Dotnet 运行时
sudo dnf install dotnet-sdk-<version>
例如
sudo dnf install dotnet-sdk-3.1
sudo dnf install dotnet-sdk-5.0
假设您已将 .NET Core DLL 文件复制到以下文件夹
/home/<username>/testapp
然后您可以使用以下命令测试您的应用程序
cd /home/admin/testapp
dotnet ConsoleApp.dll
方法 2:发布为“自包含”二进制文件
.NET Core 应用程序也可以在不安装 dotnet 运行时的情况下运行,方法是将项目编译为单个“自包含”二进制文件。
这是发布“自包含”二进制文件的截图
这是发布后的样子示例,只有一个文件
将编译后的二进制文件复制到 CentOS。
在终端上,浏览到包含自包含二进制文件的文件夹,例如
cd /home/admin/testapp
接下来,是允许文件执行权限
sudo chmod 777 ConsoleApp2
运行应用
./ConsoleApp2
有关发布“自包含”二进制文件的更多信息,请阅读 此处。
历史
- 2022 年 2 月 3 日:初始版本