[英]Mysql backup using mysqldump outputs empty file
我想在 Vb.net 中備份 MySQL 數據庫。 我正在使用此代碼:
Dim myProcess As New Process()
myProcess.StartInfo.FileName = "cmd.exe"
myProcess.StartInfo.UseShellExecute = False
myProcess.StartInfo.WorkingDirectory = "c:\bu\"
myProcess.StartInfo.RedirectStandardInput = True
myProcess.StartInfo.RedirectStandardOutput = True
myProcess.Start()
Dim myStreamWriter As StreamWriter = myProcess.StandardInput
Dim mystreamreader As StreamReader = myProcess.StandardOutput
myStreamWriter.WriteLine("mysqldump --user=root --password=MYPASSWORD --host=localhost MYDATABASE > ""C:\bu\1.sql""")
myStreamWriter.Close()
myProcess.WaitForExit()
myProcess.Close()
那就是創建一個文件,但該文件始終為空...
根據我的經驗,我記得 cmd 命令不允許輸入密碼。 嘗試此代碼以獲取有關輸出的錯誤消息:
Dim myProcess As New Process()
myProcess.StartInfo.FileName = "cmd.exe"
myProcess.StartInfo.WorkingDirectory = mysql_path + "\bin"
myProcess.StartInfo.UseShellExecute = False
myProcess.StartInfo.RedirectStandardInput = True
myProcess.StartInfo.RedirectStandardOutput = True
myProcess.StartInfo.RedirectStandardError = True
myProcess.Start()
Dim myStreamWriter As StreamWriter = myProcess.StandardInput
Dim mystreamreader As StreamReader = myProcess.StandardOutput
Dim mystreamerror As StreamReader = myProcess.StandardError
myStreamWriter.WriteLine(String.Format("mysqldump --user=root --password=MYPASSWORD --host=localhost MYDATABASE > ""C:\bu\1.sql""")
myStreamWriter.WriteLine(String.Format("exit"))
myStreamWriter.Close()
Dim msg As String = mystreamerror.ReadToEnd()
mystreamerror.Close()
If msg.Length > 0 Then
MsgBox(msg)
End If
myProcess.WaitForExit()
myProcess.Close()
如果問題出在設置密碼上,您可以查看本文以在選項文件中設置密碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.