mysql - 如何备份MySQL数据库

标签 mysql .net c#-4.0

  1. 我需要使用 MySql 查询备份我的整个数据库

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();

在这里输入代码

最佳答案

如果是整个数据库,那么:

$ 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

导入:

输入以下命令导入sql数据文件:

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

在此示例中,使用 vivek 作为用户名将“data.sql”文件导入“blog”数据库:

$ 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 转储中,您可以尝试如下操作:

$ 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();
            }
        }
    }
}

关于mysql - 如何备份MySQL数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22681132/

相关文章:

mysql - 如何在MYSQL中初始化日期字段

c# - .net 邮件类与 SQL sp_send_dbmail

c#-4.0 - Dataset/datatable是值类型还是引用类型

c# - doublevalue.ToString() 在 C# 中丢失小数位

php - 如何更改 php 中 url 中的页面标题或菜单标题?

mysql - 外键的值为 NULL

php - mysql查询2个表并计数

.net - Windows 托管的 WCF 服务可以使用 HTTPS 吗?

c# - 在 Silverlight 中发现有关字体的像素信息

c# - 具有集合类型的 CodeContracts