c#利用mysqldump命令备份MySQL数据库
c#利用mysqldump命令备份MySQL数据库
c#利用mysqldump命令备份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