65.9K
CodeProject 正在变化。 阅读更多。
Home

在 C# 中使用 MySqlBackup.NET 在 CentOS (Linux/Ubuntu) 上备份和还原 MySQL 数据库

starIconstarIconstarIconstarIconstarIcon

5.00/5 (1投票)

2022 年 2 月 3 日

CPOL

2分钟阅读

viewsIcon

5141

downloadIcon

108

使用 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 日:初始版本
© . All rights reserved.