mysql - 在 process.start 上使用 mysqldump 没有任何反应,但是当我在 cmd 上尝试参数时它正在工作

标签 mysql process.start

我花了几个小时来解决这个问题。我有这个代码

    Dim drive_name As String = Directory.GetCurrentDirectory & "\database"

    Dim db_name As String = "sample_db.sql"

    Dim argument As String = "-u root sample_db table1 > """ & drive_name & "\" & db_name & """"
    Try
        Diagnostics.Process.Start("C:\xampp\mysql\bin\mysqldump.exe", argument)
        Console.WriteLine("Argument:  " & argument)
    Catch ex As Exception
        Console.WriteLine("Error:   " & ex.ToString)
    End Try

通过查看console.writeline,它的输出是这样的

-u root sample_db table1 > "C:\Users\MyName\Desktop\MyProjectPath\bin\Debug\database\sample_db.sql"

但是通过检查C:\Users\MyName\Desktop\MyProjectPath\bin\Debug\database\我看不到sample_db.sql,所以我打开mysqdump复制 console.writeline 并将其粘贴到 cmd。我现在在 mysqldump 上有这个

C:\Users\MyName>C:\xampp\mysql\bin\mysqldump -u root sample_db table1 > "C:\Users\MyName\Desktop\MyProjectPath\bin\Debug\database\sample_db.sql"

通过在 mysqldump 上执行它可以工作。

我该如何解决这个问题?

最佳答案

虽然这不使用 mysql(因为我没有),但原则适用。

Process p = new Process();
p.StartInfo.FileName = @"c:\windows\system32\ipconfig.exe";
p.StartInfo.Arguments = @"/all";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.Start();
String output = p.StandardOutput.ReadToEnd();
File.WriteAllText(@"c:\log.txt",output);
p.WaitForExit();

在 log.txt 中是我预期的输出。

所以在你的情况下,你在文件名中有 mysqldump 命令,在参数中有参数,并将 writealltext 更改为你的输出文件

很明显,如果您愿意,您可以使用它来发挥更大的创意,例如大小可能是一个问题,毕竟如果您有 GB 的数据,将其全部存储在一个字符串中可能要求有点高,但输出是一个流,所以实际上你可以进一步工作并更直接地使用流并逐 block 输出

关于mysql - 在 process.start 上使用 mysqldump 没有任何反应,但是当我在 cmd 上尝试参数时它正在工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36617516/

相关文章:

c# - 在C#中顺序执行多个Process.Start()

mysql - 当我在字段列表中选择非索引字段时,为什么 MySQL 停止使用索引进行连接

mysql - 令人费解的 Ruby/MySQL 错误 : "invalid packet: sequence number mismatch"

C# 进程无法访问文件 'XYZ',因为它正在被另一个进程使用

c# - 在 C# 中控制由 URI 启动的进程

c# - Windows 服务如何在引发计时器事件时启动进程?

c# - Process.Start() 对于 *.jpg 文件失败

java - 定制安装程序建议

php - 如何使用 jquery 自动完成在 MySql 中加载大量记录

php - 连接 2 个 MYSQL 查询