簡體   English   中英

如何進行MySQL數據庫備份

[英]How to take backup of MySQL Database

  1. 我需要使用MySql Query備份整個數據庫

2.也可以使用c#代碼備份數據庫

我的應用程序是一個獨立的應用程序,並使用vs2010。 這是我到目前為止嘗試過的。無法確定拋出了什么錯誤。任何建議都將有所幫助。對此的任何幫助都將有很大幫助

enter code here

        int year = Time.Year;
        int month = Time.Month;
        int day = Time.Day;
        int hour = Time.Hour;
        int minute = Time.Minute;
        int second = Time.Second;
        int millisecond = Time.Millisecond;

        //Save file to C:\ with the current date as a filename
        string path;
        path = "D:\\yourfoldername" + year + "-" + month + "-" + day + "-" + hour + "-" + minute + "-" + second + "-" + millisecond + ".sql";
        StreamWriter file = new StreamWriter(path);


        ProcessStartInfo psi = new ProcessStartInfo();
        psi.FileName = "mysqldump";
        psi.RedirectStandardInput = false;
        psi.RedirectStandardOutput = true;
        psi.Arguments = string.Format(@"-u{0} -p{1} -h{2} {3}", "root", "", "localhost", "database");
        psi.UseShellExecute = false;

        Process process = Process.Start(psi);

        string output;
        output = process.StandardOutput.ReadToEnd();
        file.WriteLine(output);
        process.WaitForExit();
        file.Close();
        process.Close();

enter code here

如果是整個數據庫,則:

$ mysqldump -u [uname] -p[pass] db_name > db_backup.sql

如果是所有DB,那么:

$ mysqldump -u [uname] -p[pass] --all-databases > all_db_backup.sql

如果是數據庫中的特定表,則:

$ mysqldump -u [uname] -p[pass] db_name table1 table2 > table_backup.sql

您甚至可以使用gzip來自動壓縮輸出(如果您的數據庫很大):

$ mysqldump -u [uname] -p[pass] db_name | gzip > db_backup.sql.gz

如果要遠程執行此操作,並且可以訪問有問題的服務器,則可以使用以下命令(假設MySQL服務器位於端口3306上):

$ mysqldump -P 3306 -h [ip_address] -u [uname] -p[pass] db_name > db_backup.sql

導入:

ype以下命令導入sql數據文件:

$ mysql -u username -p -h localhost DATA-BASE-NAME < data.sql

在此示例中,使用vivek作為用戶名將“ data.sql”文件導入“博客”數據庫:

$ mysql -u sat -p -h localhost blog < data.sql

如果您有專用的數據庫服務器,則將localhost主機名替換為實際的服務器名或IP地址,如下所示:

$ mysql -u username -p -h 202.54.1.10 databasename < data.sql

或使用主機名,例如mysql.cyberciti.biz

$ mysql -u username -p -h mysql.cyberciti.biz database-name < data.sql

如果您不知道數據庫名稱或數據庫名稱包含在sql dump中,則可以嘗試以下操作:

$ mysql -u username -p -h 202.54.1.10 < data.sql

參考: http : //dev.mysql.com/doc/refman/5.6/en/mysqldump.html

使用C#在MySQL中備份數據庫

備份MySQL數據庫

private void Backup()
{
    string constring = "server=localhost;user=root;pwd=qwerty;database=test;";
    string file = "C:\\backup.sql";
    using (MySqlConnection conn = new MySqlConnection(constring))
    {
        using (MySqlCommand cmd = new MySqlCommand())
        {
            using (MySqlBackup mb = new MySqlBackup(cmd))
            {
                cmd.Connection = conn;
                conn.Open();
                mb.ExportToFile(file);
                conn.Close();
            }
        }
    }
}

恢復MySQL數據庫

private void Restore()
{
    string constring = "server=localhost;user=root;pwd=qwerty;database=test;";
    string file = "C:\\backup.sql";
    using (MySqlConnection conn = new MySqlConnection(constring))
    {
        using (MySqlCommand cmd = new MySqlCommand())
        {
            using (MySqlBackup mb = new MySqlBackup(cmd))
            {
                cmd.Connection = conn;
                conn.Open();
                mb.ImportFromFile(file);
                conn.Close();
            }
        }
    }
}

您可以使用mysqldump

$ mysqldump -u [uname] -p[pass] [dbname] > [backupfile.sql]

看看這個

http://www.thegeekstuff.com/2008/09/backup-and-restore-mysql-database-using-mysqldump/

http://www.mediacollege.com/computer/database/mysql/backup.html

看一下這個項目:

MySqlBackup.NET-適用於C#的MySQL備份解決方案

您不必為此編寫很多代碼。 我正在從官方文檔中為您評論一個示例:

簡單導出示例

using MySql.Data.MySqlClient;
string constring = "server=localhost;user=root;pwd=qwerty;database=test;";
string file = "C:\\backup.sql";
using (MySqlConnection conn = new MySqlConnection(constring))
{
using (MySqlCommand cmd = new MySqlCommand())
{
    using (MySqlBackup mb = new MySqlBackup(cmd))
         {
        cmd.Connection = conn;
        conn.Open();
        mb.ExportToFile(file);
        conn.Close();
         }
     }
 }

希望對以后的讀者有所幫助。

使用C#在MySQL中備份數據庫

查看此Windows表單

Process process = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo("cmd.exe", @"/c mysqldump -u root --password=12345 -h localhost ""DATABASE_NAME"" > " + textBackup.Text + "");
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
startInfo.WorkingDirectory = @"C:\Program Files (x86)\MySQL\MySQL Server 5.5\bin";
Process.Start(startInfo);

textBackup.Text實際上是文件的路徑,例如。 E:\\ tmp.sql。

如果要訪問用戶定義的路徑,請像下面這樣寫----

Process process = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo("cmd.exe", @"/c mysqldump -u root --password=12345 -h localhost ""DATABASE_NAME"" > e:\tmp.sql");
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
startInfo.WorkingDirectory = @"C:\Program Files (x86)\MySQL\MySQL Server 5.5\bin";
Process.Start(startInfo);

使用C#還原MySQL數據庫

Process process = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo("cmd.exe", @"/c mysql -u root -p12345 -h localhost ""DATABASE_NAME"" < " + textRestore.Text + "");
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
startInfo.WorkingDirectory = @"C:\Program Files (x86)\MySQL\MySQL Server 5.5\bin";
Process.Start(startInfo);

textRestore.Text實際上是文件的路徑,例如。 E:\\ tmp.sql。

如果要訪問用戶定義的路徑,請像下面這樣寫----

Process process = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo("cmd.exe", @"/c mysql -u root -p12345 -h localhost ""DATABASE_NAME"" < e:\tmp.sql");
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
startInfo.WorkingDirectory = @"C:\Program Files (x86)\MySQL\MySQL Server 5.5\bin";
Process.Start(startInfo);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM