Поскольку я не уверен, какую ошибку вы получаете, по крайней мере, это можно изменить.
string cmd = string.Format(@"-u{0} -p{1} -h{2} {3} > {4};", "root", "", "localhost", "dbfile", "backup.sql");
Позже вы прокомментировали, что это должно быть -u root -p smartdb > testdb.sql";
, за исключением вышеприведенного, отсутствует пробелпосле -u, поэтому я бы изменил его на:
string cmd = string.Format(@"-u {0} -p {1} -h {2} {3} > {4};", "root", "", "localhost", "dbfile", "backup.sql");