zoukankan      html  css  js  c++  java
  • ASP.NET备份还原MySql数据库 Dump

     1  protected void Page_Load(object sender, EventArgs e)
     2     {
     3         UILogic.ClearCache();
     4         VPUserInfo userinfo = UILogic.getSession() as VPUserInfo;
     5         if (userinfo == null)
     6         {
     7             //Response.Write("<mce:script type="text/javascript"><!--
     8 top.location.href='~/../login.aspx'
     9 // --></mce:script>");
    10         }
    11         else
    12         {
    13             //if (!Page.IsPostBack)
    14             //{
    15                 System.IO.Directory.CreateDirectory("C://Program Files//MySQL//MySQL Server 5.0//data//vpdata");//在服务器mysql中创建vpdata数据库
    16             //}
    17         }
    18     }
    19 
    20     protected void Backup_Click(object sender, ImageClickEventArgs e)
    21     {
    22         try
    23         {
    24             //string filename = DateTime.Now.ToString().Replace("-", "").Replace(":", "").Replace(" ", "");
    25 
    26             string filePath = "D://web//App_Data";
    27             string fileName = filePath + "//vpdata.sql";//备份的文件名称和路径
    28             //判断目录是否存在
    29             if (!System.IO.File.Exists(fileName))
    30             {
    31                 System.IO.Directory.CreateDirectory(filePath);
    32             }
    33 
    34             //构建执行的命令
    35             String command = string.Format("mysqldump --quick --host=localhost --default-character-set=latin1 --lock-all-tables --port=3306 --user=root --password=123456 --databases vpdata -R >D://web//App_Data//{0}.sql", "vpdata");
    36 
    37             //获取mysqldump.exe所在路径
    38             String appDirecroty = @"C:/Program Files/MySQL/MySQL Server 5.0/bin/";
    39 
    40             StartCmd(appDirecroty, command);
    41             ScriptManager.RegisterClientScriptBlock(Backup, GetType(), "yes", "alert('数据库已成功备份到D://web//App_Data//Vpdata文件中')", true);
    42         }
    43         catch (Exception ex)
    44         {
    45             ScriptManager.RegisterClientScriptBlock(Backup, GetType(), "no", "alert('数据库备份失败!')", true);
    46         }
    47     }
    48     protected void Restore_Click(object sender, ImageClickEventArgs e)
    49     {
    50         try
    51         {
    52 
    53 
    54             //构建执行的命令
    55             String command = string.Format("mysql --host=192.168.1.10 --default-character-set=latin1 --port=3306 --user=root --password=123456 vpdata <D://web//App_Data//{0}.sql", "vpdata");
    56 
    57             //获取mysql.exe所在路径
    58             String appDirecroty = @"C:/Program Files/MySQL/MySQL Server 5.0/bin/";
    59 
    60             StartCmd(appDirecroty, command);
    61             ScriptManager.RegisterClientScriptBlock(Restore, GetType(), "yes", "alert('服务器数据库还原成功!')", true);
    62         }
    63         catch (Exception ex)
    64         {
    65             ScriptManager.RegisterClientScriptBlock(Restore, GetType(), "no", "alert('数据库还原失败!')", true);
    66         }
    67     }
    68 
    69     /// <summary>
    70     /// 执行Cmd命令
    71     /// </summary>
    72     /// <param name="workingDirectory">要启动的进程的目录</param>
    73     /// <param name="command">要执行的命令</param>
    74     public static void StartCmd(String workingDirectory, String command)
    75     {
    76         Process p = new Process();
    77         p.StartInfo.FileName = "cmd.exe";
    78         p.StartInfo.WorkingDirectory = workingDirectory;
    79         p.StartInfo.UseShellExecute = false;
    80         p.StartInfo.RedirectStandardInput = true;
    81         p.StartInfo.RedirectStandardOutput = true;
    82         p.StartInfo.RedirectStandardError = true;
    83         p.StartInfo.CreateNoWindow = true;
    84         p.Start();
    85         p.StandardInput.WriteLine(command);
    86         p.StandardInput.WriteLine("exit");
    87     }
  • 相关阅读:
    深入理解.NET(第2版.英文影印版)书评
    揭示同步块索引(上):从lock开始
    【读书笔记】.NET本质论第一章 The CLR as a Better COM
    【翻译】TestAfter Development is not TestDriven Development
    【读书笔记】.NET本质论第二章Components(Part One)
    Python和Ruby:流行动态脚本语言之特点对比
    C++ Unit Testing Framework: A Boost Test Tutorial——part2:Using Boost Test
    组态软件开发(zz)
    用于实现拖入操作的通用类
    找到一个脚本引擎
  • 原文地址:https://www.cnblogs.com/tangzhengyue/p/2443907.html
Copyright © 2011-2022 走看看