mysql定时数据备份工具(c#)
此博文的出处 为 http://blog.csdn.net/zhujunxxxxx/article/details/40124773zhujunxxxxx@163.com ,如有问题请联系作者 为了确保数据的安全,我们往往要对数据进行备份。但是为了减少我们的工作量,我写了一个简单的数据备份工具,实现定时备份数据库。 其
此博文的出处 为 http://blog.csdn.net/zhujunxxxxx/article/details/40124773zhujunxxxxx@163.com,如有问题请联系作者
为了确保数据的安全,我们往往要对数据进行备份。但是为了减少我们的工作量,我写了一个简单的数据备份工具,实现定时备份数据库。
其实程序很简单,数据备份的工作就是几个mysql的命令而已。
先看看程序的运行界面
可以看到界面是十分的简单的
我们使用的是命令行来进行数据备份,所以我们的程序需要一个能够执行命令行的函数
/// <summary> /// 执行Cmd命令 /// </summary> /// <param name="workingDirectory">要启动的进程的目录 /// <param name="command">要执行的命令 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"); }
接下来是一个备份数据库的函数
public void bakup_db() { try { //String command = "mysqldump --quick --host=localhost --default-character-set=gb2312 --lock-tables --verbose --force --port=端口号 --user=用户名 --password=密码 数据库名 -r 备份到的地址"; //构建执行的命令 StringBuilder sbcommand = new StringBuilder(); StringBuilder sbfileName = new StringBuilder(); sbfileName.AppendFormat("{0}", DateTime.Now.ToShortDateString()).Replace("-", "").Replace(":", "").Replace(" ", "").Replace("/", ""); String fileName = sbfileName.ToString(); String directory = bakpath + fileName+".bak"; sbcommand.AppendFormat("mysqldump --quick --host=localhost --default-character-set=utf8 --lock-tables --verbose --force --port=3306 --user={0} --password={1} {2} -r \"{3}\"", uname, upass, dbname, directory); String command = sbcommand.ToString(); //获取mysqldump.exe所在路径 //String appDirecroty = System.Windows.Forms.Application.StartupPath + "\\"; StartCmd(appDirecroty, command); } catch (Exception ex) { } }
还原数据库
public void recovery_db() { //string s = "mysql --port=端口号 --user=用户名 --password=密码 数据库名<br> 为了实现定时备份,我们使用的是一个Timer组件,来实现定时的数据备份 <pre class="brush:php;toolbar:false">private void timer1_Tick(object sender, EventArgs e) { int h = DateTime.Now.Hour; if (h == hour) { bakup_db(); } }
给出完整的代码
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Diagnostics; namespace MysqlBak { public partial class Form1 : Form { //备份文件的路径 public String bakpath="d:\\db_bak\\"; public String appDirecroty = @"C:\Program Files (x86)\MySQL\MySQL Server 6.0\bin"; public String uname = "root"; public String upass = "root"; public String dbname = "losscar_db"; public int hour=18; public Form1() { InitializeComponent(); timer1.Interval=1000*10; timer1.Start(); txt_uname.Text = uname; txt_upass.Text = upass; txt_dbname.Text = dbname; txt_bakpath.Text = bakpath; txt_mysql.Text = appDirecroty; txt_hour.Text = hour.ToString(); } /// <summary> /// 执行Cmd命令 /// </summary> /// <param name="workingDirectory">要启动的进程的目录 /// <param name="command">要执行的命令 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"); } private void btn_bak_Click(object sender, EventArgs e) { try { //String command = "mysqldump --quick --host=localhost --default-character-set=gb2312 --lock-tables --verbose --force --port=端口号 --user=用户名 --password=密码 数据库名 -r 备份到的地址"; //构建执行的命令 StringBuilder sbcommand = new StringBuilder(); StringBuilder sbfileName = new StringBuilder(); sbfileName.AppendFormat("{0}", DateTime.Now.ToShortDateString()).Replace("-", "").Replace(":", "").Replace(" ", "").Replace("/", ""); String fileName = sbfileName.ToString(); String directory = bakpath + fileName + ".bak"; sbcommand.AppendFormat("mysqldump --quick --host=localhost --default-character-set=utf8 --lock-tables --verbose --force --port=3306 --user={0} --password={1} {2} -r \"{3}\"", uname, upass, dbname, directory); String command = sbcommand.ToString(); //获取mysqldump.exe所在路径 //String appDirecroty = System.Windows.Forms.Application.StartupPath + "\\"; StartCmd(appDirecroty, command); MessageBox.Show(@"数据库已成功备份到 " + directory + " 文件中", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { MessageBox.Show("数据库备份失败!"); } } public void bakup_db() { try { //String command = "mysqldump --quick --host=localhost --default-character-set=gb2312 --lock-tables --verbose --force --port=端口号 --user=用户名 --password=密码 数据库名 -r 备份到的地址"; //构建执行的命令 StringBuilder sbcommand = new StringBuilder(); StringBuilder sbfileName = new StringBuilder(); sbfileName.AppendFormat("{0}", DateTime.Now.ToShortDateString()).Replace("-", "").Replace(":", "").Replace(" ", "").Replace("/", ""); String fileName = sbfileName.ToString(); String directory = bakpath + fileName+".bak"; sbcommand.AppendFormat("mysqldump --quick --host=localhost --default-character-set=utf8 --lock-tables --verbose --force --port=3306 --user={0} --password={1} {2} -r \"{3}\"", uname, upass, dbname, directory); String command = sbcommand.ToString(); //获取mysqldump.exe所在路径 //String appDirecroty = System.Windows.Forms.Application.StartupPath + "\\"; StartCmd(appDirecroty, command); } catch (Exception ex) { } } private void btn_recovery_Click(object sender, EventArgs e) { recovery_db(); } public void recovery_db() { //string s = "mysql --port=端口号 --user=用户名 --password=密码 数据库名

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Laravelは、Webアプリケーションを簡単に構築するためのPHPフレームワークです。次のような強力な機能を提供します。インストール:Laravel CLIを作曲家にグローバルにインストールし、プロジェクトディレクトリにアプリケーションを作成します。ルーティング:ルート/web.phpのURLとハンドラーの関係を定義します。ビュー:リソース/ビューでビューを作成して、アプリケーションのインターフェイスをレンダリングします。データベース統合:MySQLなどのデータベースとのすぐ外側の統合を提供し、移行を使用してテーブルを作成および変更します。モデルとコントローラー:モデルはデータベースエンティティを表し、コントローラーはHTTP要求を処理します。

MySQLとPHPMyAdminは、強力なデータベース管理ツールです。 1)MySQLは、データベースとテーブルを作成し、DMLおよびSQLクエリを実行するために使用されます。 2)PHPMyAdminは、データベース管理、テーブル構造管理、データ操作、ユーザー許可管理のための直感的なインターフェイスを提供します。

他のプログラミング言語と比較して、MySQLは主にデータの保存と管理に使用されますが、Python、Java、Cなどの他の言語は論理処理とアプリケーション開発に使用されます。 MySQLは、データ管理のニーズに適した高性能、スケーラビリティ、およびクロスプラットフォームサポートで知られていますが、他の言語は、データ分析、エンタープライズアプリケーション、システムプログラミングなどのそれぞれの分野で利点があります。

小さなアプリケーションを開発する際には、軽量データベース操作ライブラリをすばやく統合する必要性という厄介な問題に遭遇しました。複数のライブラリを試した後、私はそれらがあまりにも多くの機能を持っているか、あまり互換性がないかのどちらかであることがわかりました。最終的に、私は問題を完全に解決したYii2に基づいた単純化されたバージョンであるMinii/DBを見つけました。

記事の概要:この記事では、Laravelフレームワークを簡単にインストールする方法について読者をガイドするための詳細なステップバイステップの指示を提供します。 Laravelは、Webアプリケーションの開発プロセスを高速化する強力なPHPフレームワークです。このチュートリアルは、システム要件からデータベースの構成とルーティングの設定までのインストールプロセスをカバーしています。これらの手順に従うことにより、読者はLaravelプロジェクトのための強固な基盤を迅速かつ効率的に築くことができます。

Theliaを使用してeコマースWebサイトを開発するとき、私はトリッキーな問題に遭遇しました:MySQLモードが適切に設定されていないため、いくつかの機能が適切に機能しません。いくつかの調査の後、TheliamysQlModescheckerというモジュールを見つけました。これは、Theliaが必要とするMySQLパターンを自動的に修正できるため、問題を完全に解決できます。

MySQLでは、外部キーの機能は、テーブル間の関係を確立し、データの一貫性と整合性を確保することです。外部キーは、参照整合性チェックとカスケード操作を通じてデータの有効性を維持します。パフォーマンスの最適化に注意し、それらを使用するときに一般的なエラーを避けてください。

MySQLとMariaDBの主な違いは、パフォーマンス、機能、ライセンスです。1。MySQLはOracleによって開発され、Mariadbはフォークです。 2. Mariadbは、高負荷環境でパフォーマンスを向上させる可能性があります。 3.MariaDBは、より多くのストレージエンジンと機能を提供します。 4.MySQLは二重ライセンスを採用し、MariaDBは完全にオープンソースです。既存のインフラストラクチャ、パフォーマンス要件、機能要件、およびライセンスコストを選択する際に考慮する必要があります。
