当前位置:   article > 正文

C#实现对MySQL数据库的备份还原操作(调用MySql的工具mysqldump来实现)_csdnc#导出mysql数据库备份例子

csdnc#导出mysql数据库备份例子

一、备份MySQL数据库核心代码如下:

  1. //调用mysqldump备份mysql数据库的语句
  2. string backupsql = string.Format("mysqldump --host={0} --default-character-set=utf8 --lock-tables --routines --force --port=3306 --user={1} --password={2} --quick ", "MySQL数据库服务器", "数据库的账号", "数据库密码");
  3. //mysqldump的路径
  4. string mysqldump = "C:\\Program Files\\MySQL\\MySQL Server 5.6\\bin";
  5. //需要备份的数据库名称
  6. string strDB = "bj_devicegovern";
  7. //备份数据库的路径
  8. string strDBpath = @"C:\EquipmentMonitoring_BRH\MySQL5.6DBBackup\";
  9. //判断备份的数据库路径是否存在
  10. if (!Directory.Exists(strDBpath))
  11. {
  12. Directory.CreateDirectory(strDBpath);
  13. }
  14. //备份数据库
  15. if (!string.IsNullOrEmpty(strDB))
  16. {
  17. string filePath = strDBpath + DateTime.Now.ToString("yyyyMMdd_HHmmss") + strDB + ".sql";
  18. string cmd = backupsql + strDB + " >" + filePath;
  19. string result = RunCmd(mysqldump, cmd);
  20. MessageBox.Show("数据库备份成功!", "提示");
  21. }

二、还原MySQL数据库的核心代码如下:

  1. //调用系统打开窗口控件选择文件路径
  2. OpenFileDialog ofd = new OpenFileDialog();
  3. if (ofd.ShowDialog() == DialogResult.OK)
  4. {
  5. //调用mysqldump备份mysql数据库的语句
  6. string backupsql = string.Format("mysql --host={0} --default-character-set=utf8 --port=3306 --user={1} --password={2} ", "127.0.0.1", "root", "123456");
  7. //mysql的路径
  8. string mysqldump = "C:\\Program Files\\MySQL\\MySQL Server 5.6\\bin";
  9. //需要备份的数据库名称
  10. string strDB = "bj_devicegovern";
  11. string filePath = ofd.FileName;
  12. MessageBox.Show(filePath,"当前选择的路径1");
  13. string cmd = backupsql+ strDB + " < \"" + filePath + "\"";
  14. string result = RunCmd(mysqldump, cmd);
  15. MessageBox.Show("数据库恢复成功!", "MySQL", MessageBoxButtons.OK, MessageBoxIcon.Information);
  16. }

 三、调用MySQL的工具mysqldump工具执行命令核心代码如下:

  1. /// <summary>
  2. /// MySQL的mysqldump程序执行函数
  3. /// </summary>
  4. /// <param name="mysqldumPath">mysqldum工具路径</param>
  5. /// <param name="strCmd">cmd命令</param>
  6. /// <returns></returns>
  7. private string RunCmd(string mysqldumPath, string strCmd)
  8. {
  9. System.Diagnostics.Process p = new System.Diagnostics.Process();
  10. p.StartInfo.FileName = "cmd.exe";
  11. p.StartInfo.WorkingDirectory = mysqldumPath;
  12. p.StartInfo.UseShellExecute = false;
  13. p.StartInfo.RedirectStandardInput = true;
  14. p.StartInfo.RedirectStandardOutput = true;
  15. p.StartInfo.RedirectStandardError = true;
  16. p.StartInfo.CreateNoWindow = true;
  17. p.Start();
  18. p.StandardInput.WriteLine(strCmd);
  19. p.StandardInput.WriteLine("exit");
  20. return p.StandardError.ReadToEnd();
  21. }

四、实现每天定时自动备份数据库

  1. /// <summary>
  2. /// 定时备份数据库(这里指定在每天的下午5点15分准时备份数据库)
  3. /// </summary>
  4. private void FixedTimeBackupDB()
  5. {
  6. string lastRunTime = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd");
  7. DateTime t1 = Convert.ToDateTime(lastRunTime);
  8. string currentTime = DateTime.Now.ToString("yyyy-MM-dd");
  9. DateTime t2 = Convert.ToDateTime(currentTime);
  10. int result = DateTime.Compare(t1, t2);
  11. DateTime dtNow = DateTime.Now;
  12. if (result<=0 && DateTime.Now.Hour == 17 && DateTime.Now.Minute==15)
  13. {
  14. lastRunTime = DateTime.Now.ToString("yyyy-MM-dd");
  15. //开始备份数据
  16. MessageBox.Show("开始备份数据库=" + DateTime.Now.ToString(), "提示");
  17. }
  18. }

五、在窗口初始化的时候调用自动备份脚本

  1. public Form1()
  2. {
  3. InitializeComponent();
  4. //定时任务程序
  5. Task.Run(() =>
  6. {
  7. while (true)
  8. {
  9. //每50秒休眠一次
  10. Thread.Sleep(50000);
  11. FixedTimeBackupDB();
  12. }
  13. });
  14. }

注意:需要使用者已经安装配置了MySql数据库,并且数据库存在需要备份的数据库;我这里使用的MySQL数据库是5.6版本的,默认安装的环境路径如下所示:

本项目源码链接如下:https://download.csdn.net/download/xiaochenxihua/11005123

参考链接:https://www.jb51.net/article/135724.htm

                  https://www.cnblogs.com/chenzehe/archive/2009/05/10/1453621.html

                  http://www.cnblogs.com/xielong/p/9383058.html


 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/711603
推荐阅读
相关标签
  

闽ICP备14008679号