使用C#自动发布mysqldump

本文关键字:mysqldump 使用 | 更新日期: 2023-09-27 18:00:40

我想自动化将数据库从远程服务器复制到本地服务器的过程。当我在命令提示符下运行这个程序时,它运行得很好:

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#,使用标准的Process.Start()来自动执行此操作,但我收到了一个错误,"收到错误:1045:用户'root'@'rcs-[some-ip-address].nyc.biz.rr.com(使用密码:NO)在尝试连接时拒绝访问。

如果我修改了命令行并删除了"|mysql-uroot[db-name]",它就会运行(它就是不能做我想做的事情)。|似乎在把事情搞砸。|有什么特别之处,我能做些什么来解决这个问题?

编辑:如果我使用进程资源管理器,我可以看到C#无法将任何命令行参数传递给mysqldump。我认为问题不在于mysqldump,我认为问题在于process.start()无法处理参数中的特殊字符

使用C#自动发布mysqldump

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

http://channel9.msdn.com/Forums/TechOff/202091-ProcessStartInfo-pipe-output-to-another-exe

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

使用mysqldump时的Localhost/netbios;

rrcs-使用Process.Start()时的[某些ip地址].nyc.biz.rr.com

尝试添加"root"@"rcs-[某个ip地址].nyc.biz.rr.com'的权限,以匹配"root"@"localhost'/"root"@machinename"的权限