c#备份MySQL数据库

复制代码
namespace BackupMySQL
{
    
class Program
    
{
        
public static void DoBackup()
        
{
            
string[] ary = ReadFromText();

            
string host = ary[0];
            
string port=ary[1];
            
string user = ary[2];
            
string password = ary[3];
            
string database = ary[4];
            
string fileName = database + "_bak_" + DateTime.Now.ToString("yyyyMMddhhmmss");
            
string bakPath = ary[5+ "\\" + fileName + ".sql";
            
string logPath = ary[6];

            
string cmdStr = "/c mysqldump -h" + host + " -P" + port + " -u" + user + " -p" + password + " " + database + " > " + bakPath;

            
            
try
            
{
                System.Diagnostics.Process.Start(
"cmd", cmdStr);
            }

            
catch (Exception ex)
            
{
                WriteLog(logPath, ex.Message);
            }

            
        }


        
/// <summary>
        
/// 读配置
        
/// </summary>
        
/// <returns></returns>

        public static string[] ReadFromText()
        
{
            
string FileName = @"d:\BackupIni.txt";
            ArrayList list 
= new ArrayList();
            
if (File.Exists(FileName))
            
{
                StreamReader sr 
= new StreamReader(FileName, Encoding.Default);
                
string s = "";
                
while ((s = sr.ReadLine()) != null)
                
{
                    list.Add(s);
                }

            }

            
return (string[])list.ToArray(typeof(string));
        }


        
/// <summary>
        
/// 写日志
        
/// </summary>
        
/// <param name="filePath"></param>
        
/// <param name="theStr"></param>

        public static void WriteLog(string filePath, string theStr)
        
{
            
if (!File.Exists(filePath))
            
{
                File.Create(filePath);
            }

            StreamWriter sw 
= new StreamWriter(filePath, true, Encoding.Default);
            sw.WriteLine(theStr);
            sw.Flush();
            sw.Close();
        }


        
static void Main(string[] args)
        
{
            DoBackup();
        }

    }

}
复制代码

 

备份:mysqldump -hlocalhost -P3306 -uroot -p123 --default-character-set=utf8 mydata > d:\test\mydata.sql

还原:mysql -hlocalhost -P3306 -uroot -p123 mydata  < d:\test\mydata.sql

 

posted @   梦想天空(山边小溪)  阅读(6383)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示