返回
编程
分类

以下的文章主要介绍的是C,MySql Server安装步骤

日期: 2020-01-02 08:12 浏览次数 : 113

以下的文章主要介绍的是C#备份还原MySQL数据库的实际应用,如果你对C#备份还原MySQL数据库的实际应用很感兴趣的话,你就可以点击以下的文章了,望你会对其相关的内容有跟你更深入的了解。

MySql Server安装步骤

通过调用MySQL的工具MySQLdump来实现。

1安装MySql Server

 必威官网亚洲体育 1

必威官网亚洲体育 2

必威官网亚洲体育 3

必威官网亚洲体育 4

必威官网亚洲体育 5

必威官网亚洲体育 6

必威官网亚洲体育 7

必威官网亚洲体育 8

必威官网亚洲体育 9

必威官网亚洲体育 10

必威官网亚洲体育 11

必威官网亚洲体育 12

必威官网亚洲体育 13

必威官网亚洲体育 14

必威官网亚洲体育 15

必威官网亚洲体育 16

必威官网亚洲体育 17

必威官网亚洲体育 18

必威官网亚洲体育 19

必威官网亚洲体育 20

类Cmd来实现调用cmd命令,

2 安装MySqlServer管理工具

 必威官网亚洲体育 21

必威官网亚洲体育 22

必威官网亚洲体育 23

必威官网亚洲体育 24

必威官网亚洲体育 25

必威官网亚洲体育 26

必威官网亚洲体育 27

必威官网亚洲体育 28

必威官网亚洲体育 29 

 解压中文语言包,将文件复制到安装目录下覆盖

  必威官网亚洲体育 30

必威官网亚洲体育 31

必威官网亚洲体育 32

 必威官网亚洲体育 33

文件覆盖后,打开软件设置语言为中文(CN)

 必威官网亚洲体育 34

必威官网亚洲体育 35

 

 

要启动的进程所在的目录是说MySQL自动的备份还原MySQL数据库工具MySQLdump和MySQL所在目录,当然,这个方法可以执行别的命令行工具。

3 MySqlServer开发注意事项(C#)

  1. 必威官网亚洲体育 ,联接字符串:"Server=localhost;Database=100;Uid=root;Pwd='root'"
  2. 引用MySql.Data.dll;
  3. using MySql.Data.MySqlClient;
  4. 使用MySqlConnection、MySqlParameter、MySqlDataAdapter、MySqlCommandBuilder、MySqlCommand、MySqlDataAdapter、MySqlTransaction等类
  5. 使用MySqlCommand. ExecuteScalar()方法返回的object如果要转为int类型,必须使用Convert来强制转换,否则可能会出错。
  6. 修改记录时,字段数据类型如果为Bit类型的时候,Sql语句中的字段值要使用Ture或False,不能像SqlServer中一样使用0或1。
  7. 命令行工具:

public class Cmd

{

/// <summary>

/// 执行Cmd命令

/// </summary>

/// <param name="workingDirectory">要启动的进程的目录</param>

/// <param name="command">要执行的命令</param>

public static void StartCmd(String workingDirectory, String command)

{

Process p = new Process();

p.StartInfo.FileName = "cmd.exe";

p.StartInfo.WorkingDirectory = workingDirectory;

p.StartInfo.UseShellExecute = false;

p.StartInfo.RedirectStandardInput = true;

p.StartInfo.RedirectStandardOutput = true;

p.StartInfo.RedirectStandardError = true;

p.StartInfo.CreateNoWindow = true;

p.Start();

p.StandardInput.WriteLine(command);

Thread.Sleep(10000);

//p.StandardInput.WriteLine("exit");

}

public static void StartCmd()

{

Process p = new Process();

p.StartInfo.FileName = "cmd.exe";

p.StartInfo.UseShellExecute = false;

p.StartInfo.RedirectStandardInput = true;

p.StartInfo.RedirectStandardOutput = true;

p.StartInfo.RedirectStandardError = true;

p.StartInfo.CreateNoWindow = true;

p.Start();

p.StandardInput.WriteLine("net stop mysql");

Thread.Sleep(5000);

p.StandardInput.WriteLine("net start mysql");

Thread.Sleep(5000);

p.StandardInput.WriteLine("exit");

}

}

  1. 备份:

public static bool BackUp(string backupPath)

{

try

{

//构建执行的命令

StringBuilder sbcommand = new StringBuilder();

sbcommand.AppendFormat("mysqldump -f -l -q -uroot -proot Sciendox50 -r "{0}"", backupPath);

String command = sbcommand.ToString();

//获取mysqldump.exe所在路径

String appDirecroty = @"C:Program FilesMySQLMySQL Server 5.5bin";

Cmd.StartCmd(appDirecroty, command);

Cmd.StartCmd();//重启mysql服务

MessageBox.Show(@"数据库已成功备份到 " + backupPath + " 文件中", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

return true;

}

catch (Exception)

{

MessageBox.Show("数据库备份失败!");

return false;

}

}

  1. 还原:

/// <summary>

/// 数据还原

/// </summary>

/// <param name="FilePath">文件路径</param>

/// <returns></returns>

public static bool RestoreDB(string FilePath)

{

try

{

StringBuilder sbcommand = new StringBuilder();

//在文件路径后面加上""避免空格出现异常

sbcommand.AppendFormat("mysql -uroot -proot Sciendox50 <"{0}"", FilePath);

String command = sbcommand.ToString();

//获取mysql.exe所在路径

String appDirecroty = @"C:Program FilesMySQLMySQL Server 5.5bin";

DialogResult result = MessageBox.Show("您是否真的想覆盖以前的数据库吗?那么以前的数据库数据将丢失!!!", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);

if (result == DialogResult.Yes)

{

Cmd.StartCmd(appDirecroty, command);

Cmd.StartCmd();//重启mysql服务

MessageBox.Show("数据库还原成功!");

return true;

}

return false;

}

catch (Exception)

{

MessageBox.Show("数据库还原失败!");

return false;

}

}

 

using System;  using System.Collections.Generic;  using System.Text;  using System.Diagnostics;  public class Cmd  {  / <summary>  

/ 执行Cmd命令

/ </summary>

/ <param name="workingDirectory">要启动的进程的目录</param>

/ <param name="command">要执行的命令</param>

public static void StartCmd(String workingDirectory, String command)  {  Process p = new Process();  p.StartInfo.FileName = "cmd.exe";  p.StartInfo.WorkingDirectory = workingDirectory;  p.StartInfo.UseShellExecute = false;  p.StartInfo.RedirectStandardInput = true;  p.StartInfo.RedirectStandardOutput = true;  p.StartInfo.RedirectStandardError = true;  p.StartInfo.CreateNoWindow = true;  p.Start();  p.StandardInput.WriteLine(command);  p.StandardInput.WriteLine("exit");  }  } 

备份方法:

using System;  using System.Collections.Generic;  using System.ComponentModel;  using System.Data;  using System.Drawing;  using System.Text;  using System.Windows.Forms;  using System.IO;  using System.Diagnostics;  using System.Configuration;  using MDRClient.DataAccess;  namespace MDRClient  {  public partial class DataBackup : Form  {  public DataBackup()  {  InitializeComponent();  }  private void btnBackup_Click(object sender, EventArgs e)  {  try  {  

String command = "MySQLdump --quick --host=localhost --default- character-set=gb2312 --lock-tables --verbose --force --port=端口号 --user= 用户名 --password=密码 MySQL数据库名 -r 备份到的地址";

构建执行的命令  

StringBuilder sbcommand = new StringBuilder();  StringBuilder sbfileName = new StringBuilder();  sbfileName.AppendFormat("{0}", DateTime.Now.ToString()).Replace("-", "").Replace(":", "").Replace(" ", "");  String fileName = sbfileName.ToString();  SaveFileDialog saveFileDialog = new SaveFileDialog();  saveFileDialog.AddExtension = false;  saveFileDialog.CheckFileExists = false;  saveFileDialog.CheckPathExists = false;  saveFileDialog.FileName = fileName;  if (saveFileDialog.ShowDialog() == DialogResult.OK)  {  String directory = saveFileDialog.FileName;  sbcommand.AppendFormat("MySQLdump --quick --host=localhost --default- character-set=gbk 
--lock-tables --verbose --force --port=端口号 --user=用户 名 --password=密码 数据库名 -r "{0}"", directory);  String command = sbcommand.ToString();   

获取MySQLdump.exe所在路径  

String appDirecroty = System.Windows.Forms.Application.StartupPath + "\";  Cmd.StartCmd(appDirecroty, command); 

MessageBox.Show(@"MySQL数据库已成功备份到 " + directory + " 文件中", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

}  }  catch (Exception ex)  {  MessageBox.Show("数据库备份失败!");  }  }  }  }  

还原方法,调用的是MySQL自带工具MySQL,还原时要注意的是选择的文件所在路径时,文件名要是有空格的话会出异常,所以在文件路径名加上双引号""

using System;  using System.Collections.Generic;  using System.ComponentModel;  using System.Data;  using System.Drawing;  using System.Text;  using System.Windows.Forms;  using System.IO;  using System.Diagnostics;  using System.Configuration;  using MDRClient.DataAccess;  namespace MDRClient  {  public partial class DataRestore : Form  {  public DataRestore()  {  InitializeComponent();  }  private void btnRestore_Click(object sender, EventArgs e)  {  

string s = "MySQL --port=端口号 --user=用户 名 --password=密码 数据库名<还原文件所在路径";

try  {  StringBuilder sbcommand = new StringBuilder();  OpenFileDialog openFileDialog = new OpenFileDialog();  if (openFileDialog.ShowDialog() == DialogResult.OK)  {  String directory = openFileDialog.FileName;  

在文件路径后面加上""避免空格出现异常

sbcommand.AppendFormat("MySQL --host=localhost --default-character-set=gbk --port=端口 号 --user=用户名 --password=密码 MySQL数据库<"{0}"", directory);

String command = sbcommand.ToString(); 

获取MySQL.exe所在路径

String appDirecroty = System.Windows.Forms.Application.StartupPath + "\"; 

DialogResult result = MessageBox.Show("您是否真的想覆盖以前的数据库吗?那么以前的数据库数据将丢失!!!", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);

if (result == DialogResult.Yes)  {  Cmd.StartCmd(appDirecroty, command);  MessageBox.Show("数据库还原成功!");  }  }   }  catch (Exception ex)  {  MessageBox.Show("数据库还原失败!");  }  }  }  }  

以上的相关内容就是对MySQL数据库的介绍,望你能有所收获。

...