Я бы хотел автоматизировать процесс копирования базы данных с удаленного сервера на локальный сервер. Когда я запускаю это в командной строке, все работает нормально:
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' @ 'rrcs- [some ip адрес] .nyc.biz.rr.com (используя пароль: НЕТ) при попытке подключения.
Если я изменяю командную строку и удаляю «| mysql -u root [имя базы данных]», он запускается (он просто не делает то, что я хочу). Похоже, что | сбрасывает вещи Что особенного в |, что я могу сделать, чтобы обойти это?
EDIT:
Если я использую Process Explorer, я вижу, что C # не может передать любые аргументы командной строки в mysqldump. Я не думаю, что проблема в mysqldump, я думаю, что проблема в том, что process.start () не может обрабатывать специальные символы в аргументах.