这篇放到单独讲解数据库的分类比较好,不过作为技巧性的东西,不强求怎么分类,且听我徐徐道来.
备份方法:
先通过注册表得到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);
为了给CSDN省空间,多余的代码就不写了,O(∩_∩)O哈哈~