gpt4 book ai didi

C# 和 mysqldump

转载 作者:行者123 更新时间:2023-11-29 08:31:27 24 4
gpt4 key购买 nike

我正在编写一个应用程序,该应用程序应该制作一个数据库的完整副本,然后将其以不同的名称导入到同一服务器上。
所以,我想我应该使用 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();

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

最佳答案

你有两个选择:

  • 不要在命令行中重定向 mysqldump 的输出,而是使用更详细的进程创建并 Hook mysqldump 的标准输出。这使得可以对文件进行后处理(例如对其进行哈希处理)并将其写入您想要的位置,或者直接将其运行到导入实例的标准输入中。
  • 请注意,> C:\\Documents and Settings\\admin\\Desktop\\databases\\db.sql 不是命令行参数。您需要将参数和重定向部分字符串进行sssemble并使用shell执行。确保使用绝对路径名。

关于C# 和 mysqldump,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16483871/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com