MySql备份还原方法:

 
先通过注册表得到MySQL程序的安装路径,如果是5.0版本,就是:
 
var registerLocation = @"Software\MySQL AB\MySQL Server 5.0";
var key
= Registry.LocalMachine.OpenSubKey(registerLocation);
if (key != null)
{
var location
= key.GetValue("Location").ToString();
}
 
得到路径之后,新建一个Process,准备开始备份,具体细节一边代码一边注释讲解.
 
var proc = new Process();
//通过命令行的方式进行备份,因此需要运行cmd.exe
proc.StartInfo.FileName = "cmd.exe";
//禁用系统Shell启动
proc.StartInfo.UseShellExecute = false;
//设置工作目录到location + @"bin"
//因为我们要使用mysqldump做备份,而mysqldump程序在目录 location+@"bin"下
proc.StartInfo.WorkingDirectory = location + @"bin";
//mysqldump的参数可参考mysql官网的注解,这里通过format的方式
//得到的命令参数,每个代表什么意思,从字面上已经很好理解,不解释,^_^
proc.StartInfo.Arguments = string.Format("mysqldump.exe --default-character-set=utf8 -h {0} -u {1} -p{2} {3} > {4}",server,user,pwd,database,backupFile);
//不新建窗口,相当于隐藏界面
proc.StartInfo.CreateNoWindow = true;
//以下两句主要是为了调试目的,加不加都无所谓
proc.StartInfo.RedirectStandardInput = true;
proc.StartInfo.RedirectStandardOutput
= true;
//开始执行备份
proc.Start();
//等待备份完成
proc.WaitForExit();
//关闭进程
proc.Close();
 这样简单几步就备份完成了.
还原方法:
跟备份的方法类似,只是备份调用的是mysql.exe
只需改一句,具体参数—force表示强制还原,其他很明了,不多解释.
 
proc.StartInfo.Arguments = string.Format("mysql.exe --force -h {0} -u {1} -p{2} {3} < {4}",
server,user,pwd,database,restoreFile);
多余的代码就不写了,O(∩_∩)O哈哈~
 
posted @ 2011-07-27 15:14  PM老猫  阅读(196)  评论(0编辑  收藏  举报