Прежде всего, я перехожу в каталог 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 серверов был перезаряжен....
После некоторых исследований я нашел решение, то есть:
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).
Когда я запускаю консоль 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 создан, но он пуст! Кто-нибудь может мне помочь? Поблагодарить
Shell("C:\\Program Files\\MySQL\\MySQL Server 5.0\\bin\\mysqldump.exe --user=root --password=admin --host=localhost --databases myDB > C:/db_backup.sql")