gpt4 book ai didi

c# - 如何使用mysql和c#.net备份数据库

转载 作者:行者123 更新时间:2023-11-29 01:45:36 26 4
gpt4 key购买 nike

我找到了使用 c#.net 备份我的数据库 (mysql) 的解决方案

string fname = txtFileName.Text;


if (fname == "")
{

MessageBox.Show("Please Enter the File Name!");return;
}

try
{

btnBackup.Enabled = false;
DateTime backupTime = DateTime.Now;

int year = backupTime.Year;
int month = backupTime.Month;

int day = backupTime.Day;
int hour = backupTime.Hour;

int minute = backupTime.Minute;
int second = backupTime.Second;

int ms = backupTime.Millisecond;
String tmestr = backupTime.ToString();

// C:\Program Files\MySQL\MySQL Server 5.0\bin

//tmestr = "C:\\" + year + "-" + month + "-" + day + "-" + hour + "-" + minute + ".bak";

tmestr = "C:\\Program Files\\MySQL\\MySQL Server 5.0\\bin\\" + fname + year + "-" + month + "-" + day + "-" + hour;// +".sql";

StreamWriter file = new StreamWriter(tmestr);
ProcessStartInfo proc = new ProcessStartInfo();

string cmd = string.Format(@"-u{0} -p{1} -h{2} {3}", user, passwd1, Data_Source, dbname);
proc.FileName = "mysqldump";

proc.RedirectStandardInput = false;
proc.RedirectStandardOutput = true;

proc.Arguments = cmd;//"-u root -p smartdb > testdb.sql";

proc.UseShellExecute = false;
Process p = Process.Start(proc);

string res;
res = p.StandardOutput.ReadToEnd();

file.WriteLine(res);

p.WaitForExit();

file.Close();

MessageBox.Show("DataBase Backup Has Been Completed Successfully!");btnBackup.Enabled = true;
}

catch (IOException ex)
{

MessageBox.Show("Disk full or other IO error , unable to backup!");
}

txtFileName.Text = "";

我必须在此文本框中输入哪个值 "txtfilename.txt"

以及我必须在此值中提供的内容 @"-u{0} -p{1} -h{2} {3}", user, passwd1, Data_Source, dbname

我在这个位置找到了 mysqldump.exe 文件

string location = "C:\\Program Files\\MySQL\\MySQL WorkBench 5.2CE\\";

这是我的连接字符串

string connestring = "server=localhost;user=root;database=access";

我不确定我必须在这些地方提供哪些值 user, passwd1, Data_Source, dbname

谁能帮帮这家伙

非常感谢..

最佳答案

首先,您应该使用的 mysqldump.exe 的位置与 mysql 本身在同一个目录中(例如 C:\Program Files\MySQL\MySQL Server 5.5\bin),使用那个而不是其他副本。

没有连接字符串。

在父目录(即 C:\Program Files\MySQL\MySQL Server 5.5)中,您会找到配置文件 my.ini,在 [client] 标题下您可以设置连接设置(用户名/密码等) .如果您愿意,您可以在启动 mysqldump 进程时将登录信息指定为参数(MySQL 提供了一个 list of arguments)。

例如,将转储您指定的数据库中的所有内容(数据、结构、触发器、批处理,并在您再次将其导入时覆盖任何表,使用命令行参数取决于根据你的需要)。

    public static void DumpStructure()
{
Process sd = null;
ProcessStartInfo r1 = new ProcessStartInfo(/* Full path to MySqlDump.exe */, "--databases exampleDatabase1 exampleDatabase2 --compress --routines --triggers --add-drop-database --add-drop-table --add-locks --extended-insert --password=YOURPASSWORD --port=8307 --user=YOURUSERNAME --disable-keys --quick --comments --complete-insert --result-file=DUMPEDOUTPUT.sql");

r1.CreateNoWindow = true;
r1.WorkingDirectory = /* WHERE MYSQL.EXE IS STORED */;
r1.UseShellExecute = false;
r1.WindowStyle = ProcessWindowStyle.Minimized;
r1.RedirectStandardInput = false;

sd = Process.Start(r1);
sd.WaitForExit();

if (!sd.HasExited) {
sd.Close();
}
sd.Dispose();
r1 = null;
sd = null;
}

关于c# - 如何使用mysql和c#.net备份数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7686256/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com