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

2vuwiymt  于 2021-06-23  发布在  Mysql
关注(0)|答案(2)|浏览(506)

首先,我使用命令提示符(cmd.exe)进入mysql workbench目录,然后有一个正常工作的fallowing命令:

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")

当然我用错了参数:(。。。有人能帮我吗?
我也使用了联邦表,但在这种情况下,由于表太大,服务器的ram被过度使用。。。。

xkftehaa

xkftehaa1#

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

ivqmmu1c2#

经过一番研究,我找到了一个解决办法,那就是:

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时,我们可以使用多个命令,字符“&”分隔不同的命令,例如change directory或execute the mysqldump.exe)。

相关问题