赞
踩
一、备份MySQL数据库核心代码如下:
- //调用mysqldump备份mysql数据库的语句
- string backupsql = string.Format("mysqldump --host={0} --default-character-set=utf8 --lock-tables --routines --force --port=3306 --user={1} --password={2} --quick ", "MySQL数据库服务器", "数据库的账号", "数据库密码");
- //mysqldump的路径
- string mysqldump = "C:\\Program Files\\MySQL\\MySQL Server 5.6\\bin";
- //需要备份的数据库名称
- string strDB = "bj_devicegovern";
- //备份数据库的路径
- string strDBpath = @"C:\EquipmentMonitoring_BRH\MySQL5.6DBBackup\";
-
- //判断备份的数据库路径是否存在
- if (!Directory.Exists(strDBpath))
- {
- Directory.CreateDirectory(strDBpath);
- }
-
- //备份数据库
- if (!string.IsNullOrEmpty(strDB))
- {
- string filePath = strDBpath + DateTime.Now.ToString("yyyyMMdd_HHmmss") + strDB + ".sql";
- string cmd = backupsql + strDB + " >" + filePath;
- string result = RunCmd(mysqldump, cmd);
-
- MessageBox.Show("数据库备份成功!", "提示");
-
- }
二、还原MySQL数据库的核心代码如下:
- //调用系统打开窗口控件选择文件路径
- OpenFileDialog ofd = new OpenFileDialog();
- if (ofd.ShowDialog() == DialogResult.OK)
- {
- //调用mysqldump备份mysql数据库的语句
- string backupsql = string.Format("mysql --host={0} --default-character-set=utf8 --port=3306 --user={1} --password={2} ", "127.0.0.1", "root", "123456");
- //mysql的路径
- string mysqldump = "C:\\Program Files\\MySQL\\MySQL Server 5.6\\bin";
- //需要备份的数据库名称
- string strDB = "bj_devicegovern";
-
- string filePath = ofd.FileName;
- MessageBox.Show(filePath,"当前选择的路径1");
-
- string cmd = backupsql+ strDB + " < \"" + filePath + "\"";
- string result = RunCmd(mysqldump, cmd);
-
- MessageBox.Show("数据库恢复成功!", "MySQL", MessageBoxButtons.OK, MessageBoxIcon.Information);
-
- }
三、调用MySQL的工具mysqldump工具执行命令核心代码如下:
- /// <summary>
- /// MySQL的mysqldump程序执行函数
- /// </summary>
- /// <param name="mysqldumPath">mysqldum工具路径</param>
- /// <param name="strCmd">cmd命令</param>
- /// <returns></returns>
- private string RunCmd(string mysqldumPath, string strCmd)
- {
- System.Diagnostics.Process p = new System.Diagnostics.Process();
- p.StartInfo.FileName = "cmd.exe";
- p.StartInfo.WorkingDirectory = mysqldumPath;
- p.StartInfo.UseShellExecute = false;
- p.StartInfo.RedirectStandardInput = true;
- p.StartInfo.RedirectStandardOutput = true;
- p.StartInfo.RedirectStandardError = true;
- p.StartInfo.CreateNoWindow = true;
- p.Start();
- p.StandardInput.WriteLine(strCmd);
- p.StandardInput.WriteLine("exit");
- return p.StandardError.ReadToEnd();
- }
四、实现每天定时自动备份数据库
- /// <summary>
- /// 定时备份数据库(这里指定在每天的下午5点15分准时备份数据库)
- /// </summary>
- private void FixedTimeBackupDB()
- {
- string lastRunTime = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd");
- DateTime t1 = Convert.ToDateTime(lastRunTime);
- string currentTime = DateTime.Now.ToString("yyyy-MM-dd");
- DateTime t2 = Convert.ToDateTime(currentTime);
- int result = DateTime.Compare(t1, t2);
-
- DateTime dtNow = DateTime.Now;
- if (result<=0 && DateTime.Now.Hour == 17 && DateTime.Now.Minute==15)
- {
-
- lastRunTime = DateTime.Now.ToString("yyyy-MM-dd");
-
- //开始备份数据
- MessageBox.Show("开始备份数据库=" + DateTime.Now.ToString(), "提示");
- }
-
- }
五、在窗口初始化的时候调用自动备份脚本
- public Form1()
- {
- InitializeComponent();
-
- //定时任务程序
- Task.Run(() =>
- {
- while (true)
- {
- //每50秒休眠一次
- Thread.Sleep(50000);
-
- FixedTimeBackupDB();
-
- }
- });
-
- }
注意:需要使用者已经安装配置了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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。