您当前的位置: 首页 >  .net

寒冰屋

暂无认证

  • 4浏览

    0关注

    2286博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

寒冰屋 发布时间:2022-09-07 21:15:00 ,浏览量:4

目录

介绍

使用代码

方法 1:在CentOS上发布安装了运行时支持的软件包

方法 2:发布为“自包含”二进制文件

  • 下载源代码 - 382.3 KB
介绍

MySqlBackup.NET是一个用C#编写的开源项目,用于执行MySQL数据库的备份和恢复。本文将重点介绍如何构建此库以在CentOS(Linux/Ubuntu)上运行。

使用代码

这个想法是在.NET Core中构建一个项目并将其发布为Linux包。

MySqlBackup.NET是一个用于备份和恢复MySQL数据库的开源.NET库 (C#/VB.NET)。

在这里,我们正在研究如何在CentOS/Linux上运行MySqlBackup.NET来执行MySQL数据库的备份和恢复。

我们可以用一个简单的控制台应用程序来测试它。

首先创建一个.NET Core Console Linux项目:

检查项目属性,确保项目是使用.NET Core Framework构建的:

安装Nuget包MySqlBackup.NET(带有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项目:

  • 方法一:在CentOS上发布安装了运行时支持的包
  • 方法 2:发布为“自包含”二进制文件
方法 1:在CentOS上发布安装了运行时支持的软件包

首先,发布项目。

将目标运行时设置为linux-x64:

在上面的示例中,Linux编译的二进制文件位于:

\bin\Release\netcoreapp3.1\publish\linux-x64

复制上述文件夹中的DLL并将其粘贴到您的CentOS中:

在CentOS上,通过以下命令确保您已安装Dotnet运行时:

sudo dnf install dotnet-sdk-

例如:

sudo dnf install dotnet-sdk-3.1
sudo dnf install dotnet-sdk-5.0

假设您已将.NET Core DLL文件复制到以下文件夹:

/home//testapp

然后您可以使用以下命令测试您的应用程序:

cd /home/admin/testapp
dotnet ConsoleApp.dll
方法 2:发布为“自包含”二进制文件

.NET Core App也可以在不安装dotnet runtime的情况下运行,即将项目编译为单个“自包含”二进制文件。

这是发布“自包含”二进制文件的屏幕截图:

这是发布后的示例,只有1个单个文件:

将编译好的二进制文件复制到CentOS。

在终端上,浏览到包含自包含二进制文件的文件夹,例如:

cd /home/admin/testapp

接下来,是允许文件的执行权限:

sudo chmod 777 ConsoleApp2

运行应用程序:

./ConsoleApp2

有关发布“自包含”二进制文件的更多信息,请在此处阅读更多信息。

https://www.codeproject.com/Articles/5324213/Backup-Restore-MySQL-database-on-CentOS-Linux-Ubun

关注
打赏
1665926880
查看更多评论
立即登录/注册

微信扫码登录

0.0563s