C#和mysqldump的(C# and mysqldump)

2019-09-02 11:43发布

我正在写一个应用程序,它应该使一个数据库的完整副本,然后将其导入不同的名字在同一台服务器上。
所以,我想我应该用mysqldump和mysql,我应该传递给它们的参数。
好吧,但我不能让转储把我想要的文件,因为我必须知道的位置,然后把它传递到MySQL。

StringBuilder exportPath = new StringBuilder();
//exportPath.Append(Directory.GetCurrentDirectory());
exportPath.Append(@" > C:\Temp\backup.sql");

Process MySQLDump = new Process();
MySQLDump.StartInfo.UseShellExecute = true;
//MySQLDump.StartInfo.RedirectStandardOutput = true;
MySQLDump.StartInfo.FileName = "mysqldump";
MySQLDump.StartInfo.Arguments = "-u root -proot -h localhost mytable" + exportPath;
MySQLDump.Start();
//string theDump = MySQLDump.StandardOutput.ReadToEnd();
MySQLDump.WaitForExit();
MySQLDump.Close();

我做错了什么,但我不知道是什么。

Answer 1:

你有两个选择:

  • 不重定向命令行的mysqldump的输出,而是使用更verbouse进程创建和挂钩的mysqldump的标准输出。 这使得IST可以进行后处理文件(散列它作为一个例子),要么写出来给你想去的地方,或者直接运行到进口实例的标准输入。
  • 当明白, > C:\\Documents and Settings\\admin\\Desktop\\databases\\db.sql不是命令行参数。 您需要sssemble,参数和重定向部分字符串和使用shell执行 。 请确保你使用绝对路径名。


文章来源: C# and mysqldump