您的位置:首页 > 数据库 > MySQL

C# Tip -- C#实现MySQL数据库的备份和还原

2011-03-21 11:18 399 查看
这篇放到单独讲解数据库的分类比较好,不过作为技巧性的东西,不强求怎么分类,且听我徐徐道来.
 备份方法:
先通过注册表得到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哈哈~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: