C#实现MySQL命令行备份和恢复
MySQL数据库的备份有很多工具可以使用,这两天写了一个使用C#调用MYSQL的mysqldump命令完成MySQL数据库的备份与恢复的小工具
先来说一下mysqldump命令备份MySQL数据库的使用方法
mysqldump-hhostname-uusername-ppassworddatabasename>backupfile.sql
直接将MySQL数据库压缩备份
mysqldump-hhostname-uusername-ppassworddatabasename|gzip>backupfile.sql.gz
备份MySQL数据库某个(些)表
mysqldump-hhostname-uusername-ppassworddatabasenamespecific_table1specific_table2>backupfile.sql
同时备份多个MySQL数据库
mysqldump-hhostname-uusername-ppassword–databasesdatabasename1databasename2databasename3>multibackupfile.sql
仅仅备份数据库结构
mysqldump–no-data–databasesdatabasename1databasename2databasename3>structurebackupfile.sql
备份服务器上所有数据库
mysqldump–all-databases>allbackupfile.sql
还原MySQL数据库的命令
mysql-hhostname-uusername-ppassworddatabasename还原压缩的MySQL数据库
gunzip将数据库转移到新服务器
mysqldump-uusername-ppassworddatabasename|mysql–host=*.*.*.*-Cdatabasename使用C#操作MYSQL备份与恢复,主要是利用C#执行外部程序来实现
下面是部分C#源码
//////备份数据库到特定目录 /// ///Bin文件夹目录,用于得到mysqldump.exe文件 /// 服务器 /// 用户名 /// 密码 /// 要备份的数据库名 /// 备份到什么文件 /// publicstaticboolBackupDB(stringbinfolderpath,stringserver,stringcharacter,stringuser,stringpass,stringdb,stringbackupfile) { stringcommand=string.Format("mysqldump.exe--quick--host=\"{0}\"--default-character-set=\"{1}\"--lock-tables--verbose--force--port=3306--user=\"{2}\"--password=\"{3}\"\"{4}\"-r\"{5}\"",server,character.Trim().ToLower(),user,pass,db,backupfile); StartCmd(binfolderpath+@"\",command); if(File.Exists(backupfile)) { returntrue; } else { returnfalse; } } /// ///恢复指定数据库到指定文件 /// ///Bin文件夹目录,用于得到mysqldump.exe文件 /// 服务器 /// 用户名 /// 密码 /// 要备份的数据库名 /// 要恢复的SQL文件 /// publicstaticboolRestoreDB(stringbinfolderpath,stringcharacter,stringserver,stringuser,stringpass,stringdb,stringrestorefile) { stringcommand=string.Format("mysql.exe--host=\"{0}\"--default-character-set=\"{1}\"--port=3306--user=\"{2}\"--password=\"{3}\"\"{4}\"<\"{5}\"",server,character.Trim().ToLower(),user,pass,db,restorefile); StartCmd(binfolderpath+@"\",command); returntrue; } 简单几行代码就可以实现数据库的备份恢复功能。C#实现MySQL命令行备份和恢复的主要原理是利用C#执行外部程序来实现的,其它还有其它实现方法,大家可以深入了解一下