首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >C# MySqL还原代码

C# MySqL还原代码
EN

Stack Overflow用户
提问于 2016-11-11 05:00:44
回答 1查看 123关注 0票数 0

我的任务是为Mysql备份和恢复编写c#.net代码。

备份从服务器A获取,并在服务器B上恢复。编写的代码可以完美地备份。但是恢复不会发生。我将相同的命令行从c#代码放到命令提示符下并执行它。它会从那里恢复。但不是c#程序。请帮我找出我犯的错误。

代码语言:javascript
代码运行次数:0
运行
复制
static public void restore(string ip, string user, string password, string[] tblList, string sourcedb, string targetdb)     
{

    try 
    {
        string basecmd;
        basecmd = "/c mysql -h {0} -u {1} -p{2} {3} < {4}.sql";


        foreach (string s in tblList)
        {


            string db_tbl = sourcedb + "_" + s;

            string cmd = String.Format(basecmd, ip, user, pass, targetdb, db_tbl);
            //cmd = cmd + " >error1234.txt";
            System.Threading.Thread.Sleep(1000);
            Console.WriteLine(cmd);

            //System.Diagnostics.Process.Start("cmd.exe", cmd);

            System.Diagnostics.ProcessStartInfo procStartInfo = 
                new System.Diagnostics.ProcessStartInfo("cmd", cmd);

            procStartInfo.UseShellExecute = false;
            procStartInfo.CreateNoWindow = true;
            System.Diagnostics.Process proc = new System.Diagnostics.Process();
            proc.StartInfo = procStartInfo;
            proc.Start();
            //sendSuccesEmail();
        }
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex);
        Console.WriteLine("pause");
    }


}
EN

回答 1

Stack Overflow用户

发布于 2017-08-19 13:30:21

我已经编写了一个C#本机库: MySqlBackup.NET

项目网址:https://github.com/adriancs2/MySqlBackup.Net

你可以试一试。以下是完成任务的示例代码

代码语言:javascript
代码运行次数:0
运行
复制
string dbSource = "server=192.168.1.100;user=root;pwd=1234;database=db1;";
string dbTarget = "server=192.168.1.200;user=root;pwd=1234;database=db1;";

string sqlDump = "";

// Backup from source database
using (MySqlConnection conn = new MySqlConnection(dbSource))
{
    using (MySqlCommand cmd = new MySqlCommand())
    {
        using (MySqlBackup mb = new MySqlBackup(cmd))
        {
            conn.Open();
            cmd.Connection = conn;

            sqlDump = mb.ExportToString();

            conn.Close();
        }
    }
}

// Restore to target database
using (MySqlConnection conn = new MySqlConnection(dbTarget))
{
    using (MySqlCommand cmd = new MySqlCommand())
    {
        using (MySqlBackup mb = new MySqlBackup(cmd))
        {
            conn.Open();
            cmd.Connection = conn;

            mb.ImportFromString(sqlDump);

            conn.Close();
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40536913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档