Как выполнить команду mysqldump в vb.net

0

Прежде всего, я перехожу в каталог workbench mysql с помощью командной строки (cmd.exe), тогда у меня есть команда, которая работает правильно:

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

Когда я выполняю этот код, ничего не происходит... Я также пытаюсь использовать оболочку

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 серверов был перезаряжен....

Теги:
command
dump
execute

3 ответа

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

0

Когда я запускаю консоль cmd.exe, мне удается создать на локальном хосте копию базы данных, используя следующий синтаксис: mysqldump --host = localhost --user = пользователь --password = pw - opt dbname> "C:\TMP\dbname_SAVE.sql"

Но, когда я хочу выполнить ту же команду в приложении с кодом:

Process.Start("cmd.exe", "/k cd C:\Program Files\MySQL\MySQL Server 8.0\bin\& mysqldump --host = localhost --user = пользователь --password = pw - выбрать имя db> "" C:\tmp\dbname_SAVE.sql "" & exit ")

Файл C:\tmp\dbname_SAVE.sql создан, но он пуст! Кто-нибудь может мне помочь? Поблагодарить

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")
  • 0
    Спасибо, но это не работает для меня, потому что мне придется создать еще один процесс, который восстанавливает файл резервной копии, и потому, что по каким-то конкретным причинам мне приходится перемещать данные непосредственно с сервера в хранилище. Кроме того, эта команда не работала при запуске ее в VB.net, она работает только тогда, когда я использую командную строку.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню