//备份还原mysql
public static voidTestOne()
{
Process p= newProcess();
p.StartInfo.FileName= "cmd.exe";
p.StartInfo.UseShellExecute= false;
p.StartInfo.RedirectStandardInput= true;
p.StartInfo.RedirectStandardOutput= true;
p.StartInfo.RedirectStandardError= true;
p.StartInfo.CreateNoWindow= true;//指定MySql程序的bin 目录
p.StartInfo.WorkingDirectory = @"E:\mysql-5.6.26-winx64\bin";
p.Start();/*************
* 备份命令
**************/
//简单格式//string strSql = "mysqldump --quick --host=localhost -u root -p123 test > d:\\test_20151227110010.sql";
/*命令指定格式*/
//String command = "mysqldump --quick --host=localhost --default-character-set=gb2312 --lock-tables --verbose --force --port=端口号 --user=用户名 --password=密码 数据库名 -r 备份到的地址";//string strSql = "mysqldump --quick --host=localhost --default-character-set=gb2312 --lock-tables --verbose --force --port=3306 --user=root --password=123 test -r d:\\one.sql";
/*************
* 还原命令
**************/
//简单格式//string strSql = "mysql --host=localhost -u root -p123 test < d:\\test_20151227110010.sql";
/**还原命令格式**/
//string s = "mysql --host=localhost --default-character-set=gbk --port=端口号 --user=用户名 --password=密码 数据库名
string strSql = "mysql --host=localhost --port=3306 --user=root --password=123 test < d:\\test_20151227110010.sql";
p.StandardInput.WriteLine(strSql+ "&exit");
p.StandardInput.AutoFlush= true;/****执行命令,没有返回可验证的结果*****/
//显示方式1//StreamReader reader = p.StandardOutput;//string line = reader.ReadLine();//while (!reader.EndOfStream)//{//Console.WriteLine(line);//line = reader.ReadLine();//}//显示方式2
string result =p.StandardOutput.ReadToEnd();
Console.WriteLine(result);//返回警告结果 --Warning: Using a password on the command line interface can be insecure.
string result2 =p.StandardError.ReadToEnd();
Console.WriteLine(result2);//显示方式3
ShowValue(p);
p.WaitForExit();
p.Close();
}private static async voidShowValue(Process p)
{string result = awaitp.StandardOutput.ReadToEndAsync();
Console.WriteLine(result);
}