[英]how to backup the database using mysql and c#.net
我找到了这个使用 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 提供了参数列表)。
例如,将转储您指定的数据库中的所有内容(数据、结构、触发器、批次,并在您再次导入时覆盖任何表,根据您的需要使用命令行参数)。
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;
}
如果你想备份你的数据库,你可以只做一个 mysqldump:
我不使用 Windows,但这或多或少应该可以解决问题:使用命令提示符导航到 mysqldump 所在的位置并执行以下命令:
mysqldump -u root -p --databases [我的数据库名称] > file.sql
当提示输入密码时,输入您的密码。
我不确定我是否理解您的问题,但是:
user: the user name for the account you are using to connect to mysql
passwd1: the associated password
Data_Source: the host name of the system that the mysql server is running on
dbname: the name of the database schema you are trying to back up
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.