Instead of fetching the data from output and writing to a file, try directing the backup directly to disk (note 4 backslashes):
...
path = "D:\\\\MySqlBackup" + year ...
...
psi.Arguments = string.Format(@"-u{0} -p{1} -h{2} {3} > {4}",
"root1", "root", "localhost", "schoolmanagement", path)
...
The output may be extremely large (depending on the database size) so you shouldn't route it through the program unless yo need to interpret it.
Also catch the
StandardOutput[
^] and
StandardError[
^] from the process to see if something goes wrong.