赞
踩
string mysqldump = string.Empty;
string StrSql = string.Format("select @@basedir as basePath from dual");//查询Mysqlbin文件地址,用于打开cmd命令DataSet DS = mysql.GetDataSet(StrSql);
mysqldump = DS.Tables[0].Rows[0]["basePath"].ToString();
mysqldump = mysqldump.Replace("/", "\\");//替换路径中的斜杠mysqldump = mysqldump+"bin";
//调用mysqldump备份mysql数据库的语句
string backupsql = string.Format("mysqldump --host={0} --default-character-set=utf8 --lock-tables --port=3306 --user={1} --password={2} --quick --databases ", txthost.Text, txtuser.Text, txtpwd.Text);
//备份数据库的路径
string strDBpath = @"C:\mysqlbackup\";
//判断备份的数据库路径是否存在
if (!Directory.Exists(strDBpath))
{
Directory.CreateDirectory(strDBpath);
}strDBpath +=( DateTime.Now.ToString("yyyyMMdd_HHmmss") + "MySQLBackUp.sql");
string cmd = backupsql + 数据库名+ " >" + filePath;
/// <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();
}
报错信息1
提示:在命令行界面上使用密码可能不安全。
原因:-p后边输入任何字符
如果再cmd里备份-p后不跟字符回车会让输入密码,密码成功以后备份;
我在程序中-p后直接跟密码,虽然会报错但是依旧备份成功,所以我就忽略了这条报错信息。
报错信息2
提示:使用了密码但是拒绝访问
原因:可能是mysql服务器停了或端口IP问题或mysql配置文件ini错误或密码有误
如果括号中password后跟的是NO代表没有使用密码登录
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。