如何在vb.net中执行mysqldump命令

时间:2018-08-07 18:24:37

标签: mysql vb.net command dump execute

首先,我使用命令提示符(cmd.exe)进入mysql workbench目录,然后我得到了可以正常工作的休闲命令:

mysqldump --host=ip1 --user=username --password=123 --dadabase=dbName --tables tb1 --quick --force --routines --events --lock-tables=false ==compress | mysql --host=ip2 --user=username --password=123 -b dbName 

我的问题是,当我尝试在应用程序中执行此命令时,代码是:

Process.Start("C:\program files\Mysql\Mysql Workbench 6.3 CE\mysqldump.exe","--host=ip1 --user=username --password=123 --dadabase=dbName --tables tb1 --quick --force --routines --events --lock-tables=false ==compress | mysql --host=ip2 --user=username --password=123 -b dbName")

当我执行此代码时,什么也没有发生……我也尝试使用shell

dim id as integer = Shell("C:\program files\Mysql\Mysql Workbench 6.3 CE\mysqldump.exe --host=ip1 --user=username --password=123 --dadabase=dbName --tables tb1 --quick --force --routines --events --lock-tables=false ==compress | mysql --host=ip2 --user=username --password=123 -b dbName")

肯定是我用错误的方式使用了参数:( ...有人可以帮我吗?
我还使用了联合表,但是在这种情况下,由于表很大,所以服务器的内存过高。...

2 个答案:

答案 0 :(得分:0)

Shell("C:\\Program Files\\MySQL\\MySQL Server 5.0\\bin\\mysqldump.exe --user=root --password=admin --host=localhost --databases myDB > C:/db_backup.sql")

答案 1 :(得分:0)

经过研究,我找到了一个解决方案,即:

Process.Start("cmd.exe","/k cd C:\Program Files MySQL Server 5.7\bin\ & mysqldump --host=ip1 --user=username --password=123 --dadabase=dbName --tables tb1 --quick --force --routines --events --lock-tables=false ==compress | mysql --host=ip2 --user=username --password=123 -b dbName & exit")

在我尝试直接执行mysqldump之前,但是我意识到我必须首先执行命令提示符(cmd.exe),并使用我需要的参数在其自己的目录中执行mysqldump。 (当我们在参数的开头使用/ k时,我们可以使用多个命令,而char'&'可以分隔不同的命令,例如更改目录或执行mysqldump.exe。)