C# 问题:使用C自动化mysqldump#

C# 问题:使用C自动化mysqldump#,c#,process,automation,mysqldump,C#,Process,Automation,Mysqldump,我想自动化将数据库从远程服务器复制到本地服务器的过程。在命令提示符下运行此命令时,效果良好: mysqldump -h [remote server] -u [remote user] -p[password] --compress=FALSE --skip-lock-tables=TRUE --skip-add-locks=TRUE [db name] [list of tables I want to copy] | mysql -u root [db name] 我正在尝试使用C#,使用

我想自动化将数据库从远程服务器复制到本地服务器的过程。在命令提示符下运行此命令时,效果良好:

mysqldump -h [remote server] -u [remote user] -p[password] --compress=FALSE --skip-lock-tables=TRUE --skip-add-locks=TRUE [db name] [list of tables I want to copy] | mysql -u root [db name]
我正在尝试使用C#,使用标准的进程.Start(),自动执行此操作,但我遇到了一个错误,“Get error:1045:拒绝用户'root'@'rrcs-[some ip address]的访问”。nyc.biz.rr.com(在尝试连接时使用密码:NO)

如果我修改命令行并删除“|mysql-u root[db name]”它会运行(它只是不做我想做的事情)。看起来|正在抛出一些东西。关于|有什么特殊之处,我能做些什么来避免这个问题

编辑:
如果我使用process explorer,我可以看到C#无法将任何命令行参数传递给mysqldump。我认为问题不在于mysqldump,而在于process.start()无法处理参数中的特殊字符。Mysql可能看到来自不同主机的连接

使用mysqldump时的Localhost/netbios

rrcs-[some ip address].nyc.biz.rr.com在使用Process.Start()时


尝试添加'root'@'rrcs-[some ip address].nyc.biz.rr.com'的权限,以匹配'root'@'localhost'/'root'@'machinename'

Mysql可能看到来自不同主机的连接

使用mysqldump时的Localhost/netbios

rrcs-[some ip address].nyc.biz.rr.com在使用Process.Start()时


尝试添加'root'@'rrcs-[some ip address].nyc.biz.rr.com'的权限以匹配'root'@'localhost'/'root'@'machinename'

我认为您正在尝试将mysqldump的输出通过管道传输到另一个不存在的进程中。我发现了这一点,它解释了如何通过管道传输输出。这不太好:


我认为您试图将mysqldump的输出通过管道传输到另一个不存在的进程中。我发现了这个,它解释了如何通过管道传输输出。这不太好: