如何用SQL语句实现Mysql数据库的备份与还原
以前一直做android客户端的项目,根本没有开发asp.net mvc的开发,现阶段做了一个模块,参数设置,以及数据库的备份与还原。其需求如下:
参数设置 本项参数设置为对自动数据备份进行设置,管理员可以对系统自动备份文件所存放的位置、自动备份的周期、自动备份的时间进行设定,并且可以开启或关闭自动备份功能。
数据备份 在本模块中,管理员可以通过录入系统备份文件的目标位置,对系统数据库进行备份,保证系统数据的安全性。每次备份都会记录在系统中,包含备份时间、备份位置及备份操作者。
数据还原 管理员通过选择曾经进行备份的数据库文件,在进行校对后,系统会进行数据库还原工作,本项功能用以数据灾难恢复,还原信息也会记录至系统中。 今天主要给大家认识一下,如何通过SQL语句实现MYSql数据库的备份与还原。 其实代码很简单,下来我们就直接看如何实现吧。 首先你在项目中需要导入两个Dll包,Mysql.Data.dll和Mysqlbackup.dll. 下来来看代码
1.databackup(备份)
void Backup()
{
string constr = "server=localhost;user=root;pwd=qwerty;database=test;";
string file = "C:\\MyDumpFile.sql";
MySqlBackup mb = new MySqlBackup(constr);
mb.ExportInfo.FileName = file;
mb.Export();
}
2.dataRestore(还原)
void Restore()
{
string constr = "server=localhost;user=root;pwd=qwerty;database=test;";
string file = "C:\\MyDumpFile.sql";
MySqlBackup mb = new MySqlBackup(constr);
mb.ImportInfo.FileName = file;
mb.Import();
}
3. Export and Compress as Zip File(出口和压缩,压缩文件)
void Backup()
{
string constr = "server=localhost;user=root;pwd=qwerty;database=test;";
string file = "C:\\MyDumpFile.sql";
MySqlBackup mb = new MySqlBackup(constr);
mb.ExportInfo.FileName = file;
mb.ExportInfo.ZipOutputFile = true;
mb.Export();
}
4. Select tables to backup(选择要备份表)
void BackupTables()
{
string constr = "server=localhost;user=root;pwd=qwerty;database=test;";
string file = "C:\\MyDumpFile.sql";
MySqlBackup mb = new MySqlBackup(constr);
mb.ExportInfo.FileName = file;
mb.ExportInfo.TablesToBeExported = new string[] { "member", "activity", "season" };
mb.Export();
}
5.Custom columns and rows backup conditions(自定义列和行备份条件)
void BackupTablesCustomSQL()
{
Dictionary<string, string> dic = new Dictionary<string, string>();
dic.Add("member", "SELECT * FROM `member` WHERE `membertype` = 1;");
dic.Add("payment", "SELECT `id`,`total` FROM `payment`;");
dic.Add("activity", "SELECT * FROM `activity` a INNER JOIN `season` s ON a.`seasonid` = s.`id` WHERE s.`name` = 'Spring';");
string constr = "server=localhost;user=root;pwd=qwerty;database=test;";
string file = "C:\\MyDumpFile.sql";
MySqlBackup mb = new MySqlBackup(constr);
mb.ExportInfo.FileName = file;
mb.ExportInfo.TableCustomSql = dic;
mb.Export();
}
6.Backup with Encryption(备份和加密)
void BackupEncrypt()
{
string constr = "server=localhost;user=root;pwd=qwerty;database=test;";
string file = "C:\\MyDumpFile.sql";
MySqlBackup mb = new MySqlBackup(constr);
mb.ExportInfo.FileName = file;
mb.ExportInfo.EnableEncryption = true;
mb.ExportInfo.EncryptionKey = "my secret password";
mb.Export();
}
7.Resotre with Decryption(还原与解密)
void RestoreDecrypt()
{
string constr = "server=localhost;user=root;pwd=qwerty;database=test;";
string file = "C:\\MyDumpFile.sql";
MySqlBackup mb = new MySqlBackup(constr);
mb.ImportInfo.FileName = file;
mb.ImportInfo.EnableEncryption = true;
mb.ImportInfo.EncryptionKey = "my secret password";
mb.Import();
}
8.Encrypt & Decrypt a SQL Dump File(加密和解密SQL转储文件)
void EncryptDecryptDumpFile()
{
MySqlBackup mb = new MySqlBackup();
string file1 = "C:\\MyDumpFileOld.sql";
string file2 = "C:\\MyDumpFileNew.sql";
string file3 = "C:\\MyDumpFileBackToOri.sql";
string password = "my secret password";
mb.EncryptSqlDumpFile(file1, file2, password);
mb.DecryptSqlDumpFile(file2, file3, password);
}
9.Backup Table Structures without rows and reset auto-increment to 1 Collapse | Copy Code (自动增量备份表结构没有行和重置为1 |复制代码崩溃)
void BackupNoRows()
{
string constr = "server=localhost;user=root;pwd=qwerty;database=test;";
string file = "C:\\MyDumpFile.sql";
MySqlBackup mb = new MySqlBackup(constr);
mb.ExportInfo.FileName = file;
mb.ExportInfo.ExportRows = false;
mb.ExportInfo.ResetAutoIncrement = true;
mb.Export();
}
10.Full List of Settings for Export (Backup) (的完整列表设置出口)
void BackupNoRows()
{
string constr = "server=localhost;user=root;pwd=qwerty;database=test;";
string file = "C:\\MyDumpFile.sql";
MySqlBackup mb = new MySqlBackup(constr);
mb.ExportInfo.FileName = file;
mb.ExportInfo.AddCreateDatabase = true;
mb.ExportInfo.AsynchronousMode = true;
mb.ExportInfo.AutoCloseConnection = true;
mb.ExportInfo.CalculateTotalRowsFromDatabase = true;
mb.ExportInfo.EnableEncryption = true;
mb.ExportInfo.EncryptionKey = "my secret password";
mb.ExportInfo.ExportEvents = true;
mb.ExportInfo.ExportFunctions = true;
mb.ExportInfo.ExportRows = true;
mb.ExportInfo.ExportStoredProcedures = true;
mb.ExportInfo.ExportTableStructure = true;
mb.ExportInfo.ExportTriggers = true;
mb.ExportInfo.ExportViews = true;
mb.ExportInfo.MaxSqlLength = ;
mb.ExportInfo.RecordDumpTime = true;
mb.ExportInfo.ResetAutoIncrement = true;
mb.ExportInfo.TableCustomSql = //Shown in example 4
mb.ExportInfo.TablesToBeExported = //Shown in example 3
mb.ExportInfo.ExportRows = false;
mb.ExportInfo.ResetAutoIncrement = true;
mb.ExportInfo.ZipOutputFile = false;
mb.Export();
}
11.Full List of Settings for Import (设置导入的完整列表)
void Restore()
{
string constr = "server=localhost;user=root;pwd=qwerty;database=test;";
string file = "C:\\MyDumpFile.sql";
MySqlBackup mb = new MySqlBackup(constr);
mb.ImportInfo.FileName = file;
mb.ImportInfo.AsynchronousMode = true;
mb.ImportInfo.AutoCloseConnection = true;
mb.ImportInfo.EnableEncryption = true;
mb.ImportInfo.EncryptionKey = "my secret password";
mb.ImportInfo.IgnoreSqlError = true;
mb.ImportInfo.SetTargetDatabase("MyNewDatabase", ImportInformations.CharSet.latin1);
mb.Import();
}
12.Export BLOB data and save as files on local drive (出口BLOB数据并保存为本地驱动器上的文件)
private void BackupEncrypt()
{
string folder = "C:\\exportedfiles";
string table = "upload";
string column_Blob = "blobdata";
string column_FileName = "filename";
string column_FileSize = "filesize";
string con = "server=localhost;user=root;pwd=qwerty;database=member;";
MySqlBackup mb = new MySqlBackup(con);
mb.ExportBlobAsFile(folder, table, column_Blob, column_FileName, column_FileSize);
}
13.Get all tables' name from database (从数据库获取所有表的名字)
private string[] GetTableNames()
{
string con = "server=localhost;user=root;pwd=qwerty;database=test;";
MySqlBackup mb = new MySqlBackup(con);
return mb.DatabaseInfo.TableNames;
}
14.Get Create Table sql statement for specific table (为特定的表创建表的sql语句)
private string GetCreateTable(string tableName)
{
string con = "server=localhost;user=root;pwd=qwerty;database=test;";
MySqlBackup mb = new MySqlBackup(con);
return mb.DatabaseInfo.Tables[tableName].CreateTableSql;
}
下面是我项目中写的备份与还原方法
//备份newtest database 里面所有的表
public void DataBackup()
{
try
{
//var time = DateTime.Now;
string file = "D:\\mybackup.sql";//备份的路径
string conn = "server=172.18.0.3;database=newtest;uid=root;pwd=123;";
MySqlBackup mb = new MySqlBackup(conn);
mb.ExportInfo.FileName = file;
mb.ExportInfo.EnableEncryption = true;//加密
mb.ExportInfo.EncryptionKey = "1234";//加密密钥
mb.ExportInfo.ZipOutputFile = true;//压缩
mb.Export();
}
catch (Exception e)
{
Console.WriteLine("备份失败,请检查");
}
}
//还原newtest database 里面所有的表(这里不要解压,解压是自动的)
public void DataRestore()
{
try
{
string file = "D:\\mybackup.zip";//找到备份的路径所在的zip文件,进行还原恢复。
string conn = "server=172.18.0.3;user=root;pwd=123;database=newtest;";
MySqlBackup mb = new MySqlBackup(conn);
mb.ImportInfo.FileName = file;
mb.ImportInfo.EnableEncryption = true;//解密
mb.ImportInfo.EncryptionKey = "";//解密密钥
mb.Import();
}
catch (Exception e)
{
Console.WriteLine("恢复失败,请检查");
}
}
本文原创,请尊重劳动成果。也真诚希望和大家相互讨论,相互学习,相互提高。
如何用SQL语句实现Mysql数据库的备份与还原的更多相关文章
- 使用SQL语句修改Mysql数据库字符集的方法
使用SQL语句修改Mysql数据库字符集的方法 修改库: alter database [$database] character set [$character_set] collate [$c ...
- mysql数据库的备份和还原的总结
mysql数据库的备份和还原的总结 (来自一运维同事的总结) 1. 备份方式: 热备:数据库在线进行备份,不影响读和写的在线备份方式! 温备:数据库在线进行备份,对表备份时先锁定写操作,仅可以执行读操 ...
- MySQL数据库的备份、还原、迁移
一.单库备份与还原 1.远程连接MySQL数据库 D:\mysql-5.7.14-winx64\bin>mysql -h192.168.2.201 -uroot -pcnbi2018 参数说明: ...
- Linux centosVMware mysql用户管理、常用sql语句、mysql数据库备份恢复
一.mysql用户管理 grant all on *.* to 'user1'@‘127.0.0.1’ identified by 'mimA123'; 创建user1用户 使用user1登录 /us ...
- [知了堂学习笔记]_Java代码实现MySQL数据库的备份与还原
通常在MySQL数据库的备份和恢复的时候,多是采用在cmd中执行mysql命令来实现. 例如: mysqldump -h127.0.0.1 -uroot -ppass test > d:/tes ...
- mysql数据库的备份和还原
mysql数据库的备份命令:mysqldump -u root -p 要备份的现有数据库名 > 备份后的sql文件名.sql,例如: mysqldump -u root -p heal ...
- SQL Serever学习12——数据库的备份和还原
公司的服务器奔溃了,事先没相应的保护措施,使得公司遭到了较大损失,为了以后不再出现类似事件,在系统中引入备份机制,使得数据库被破坏后损失降到最低. 数据的导出和导入 数据转换服务 数据转换服务DTS( ...
- Java代码实现MySQL数据库的备份与还原
通常在MySQL数据库的备份和恢复的时候,多是采用在cmd中执行mysql命令来实现. 例如: mysqldump -h127.0.0.1 -uroot -ppass test > d:/tes ...
- MySQL用户管理、常用sql语句、MySQL数据库备份恢复
1.MySQL用户管理 给远程登陆用户授权:grant all on *.* to 'user1'@'127.0.0.1' identified by '123456' (这里的127.0.0.1是指 ...
随机推荐
- JQery判断checkbox是否被选三种方式
方法一:if ($("#checkbox-id").get(0).checked) { // do something} 方法二:if($('#checkbox-id').i ...
- Ext JS 4 新特性2:配置项属性(config)之二
Ext JS 4 新特征2:配置项属性config之二 ☞ Config(自动的setters和getters) Ext JS 4介绍了config声明方式,在Ext JS 中也有几个例子:在运行程序 ...
- mkstemp生成临时文件
使用该函数可以指定目录生成临时文件,函数原型为 int mkstemp(char *template); 应用举例 int main(int argc, char *argv[]) { /* char ...
- 通过JavaScript改变HTML样式
语法:Object.style.property=new style; 基本属性表如下: 示例: 改变 <p> 元素的样式,将颜色改为红色,字号改为20,背景颜色改为蓝: <p id ...
- 关于 QImage::Format_Mono
QImage::Format_Mono 为通常所讲的位图模式, QT中本提供了 QBitmap 来作为位图相关的应用, 但其最大弊端在于无法操作图片中 pixel 本身或说相关方法太过繁琐. Mono ...
- mongo 导入json数据
删除库以及导入库
- 2014年5月份第4周51Aspx源码发布详情
最基本wcf服务器与客户端交互源码 2014-5-26 [VS2003]源码描述:本示例讲解的是最基本的wcf语法,示例浏览请先运行服务端,然后在运行客户端,适合想要学习wcf的初学者.仅供借鉴,欢 ...
- php绘图问题
php绘图首先要确认gd库是否启用,到php.ini文件中,找到extension=php_gd2.dll将前面的:去掉,重新启动服务器. 如果在绘图中还是没有显示正常的图片,说明服务器在回复请求时, ...
- 使用共享网卡的NAT模式配置VMware中的CentOS的上网功能
昨天写了一篇文章总结了前两天折腾VMware 10中的CentOS上网的问题,结果留下一下小瑕疵,就是视频教程中通过共享网卡使用NAT模式配置虚拟机的方法.今天在结合昨天的基础上终于弄明白了这个问题. ...
- Android深度探索--HAL与驱动开发----第八章读书笔记
通过蜂鸣器的实现原理,实现一个完整的蜂呜器驱动,可以打开和关闭蜂鸣器. PWM驱动的实现方式不同于LED驱动, PWM 驱动将由多个文件组成.这也是大多数 Linux 驱动的标准实现方式. 刚开始是L ...