求c#对Mysql的备份,利用代码,谢谢

解决方案 »

  1.   

    1、MYSQL备份一般用MYSQLDUMP;
    2、你所说的备份是指用MYSQLDUMP,还是将表SELECT ... INTO OUTFILE ?
      

  2.   

    MYSQLDUMP,我想在程序中通过代码进入dos,可备份要么是空的,要不就是乱码
      

  3.   

    mysqldump -uroot -p 数据库名> D:\TEMP\wcnc.sql
    这是命令,你可以将此命令加入你的程序,运行试试,
    首先在MYSQL中测试一下,乱码有可能是字符集的问题,
    比如UTF8在记事本中就是乱码,但在WORD中打开,会提示
    你是UTF8,不会乱码。
      

  4.   

    我哪个my.ini里面设置的是gb2312,数据库也是gb2312,我在DOS里敲命令cmd--->cd C:\Program Files\MySQL\MySQL Server 5.0\bin---->mysqldump   -uroot   -p123456   abc > c:\aaa.sql 这样备份是正确的
     System.Diagnostics.ProcessStartInfo Info = new System.Diagnostics.ProcessStartInfo();
                Info.FileName = @"C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqldump.exe";
                Info.Arguments = "--host=192.168.123.14 --user=root --password=123456 abc -r \"" + string.Format("{0}", bakPath) + "\"";
                System.Diagnostics.Process proc;
                try
                {
                    proc = System.Diagnostics.Process.Start(Info);
                }
                catch (System.ComponentModel.Win32Exception ex)
                {
                    MessageBox.Show("找不到指定程序文件");
                    return;
                } 
    我代码是这样写的,可备份是的乱码
      

  5.   

    saveFileDialog1.ShowDialog();
    string bakPath = saveFileDialog1.FileName;
      

  6.   

    saveFileDialog1.ShowDialog();
    string bakPath = saveFileDialog1.FileName;
      

  7.   

    1、MYSQL的字符集;
    2、用WORD打开是否为乱码;
    3、MYSQL的默认字符集是什么,与表、字段字符集是一致的,检查一下,
    用SQLYOG、EMS MYSQL MANAGER等等图形化管理工具看看。
      

  8.   

    我用mysql-front图形工具打开是正常的
    我用word打开备份出的sql文件,选择utf8不是乱码
    这是为什么?
      

  9.   

    呵呵,说明你的MYSQL是UTF8字符集,如果是这样,备份是没有问题的,
    而且恢复时也要将MYSQL设为UTF8字符集,你所说的乱码,应该是用
    不支持UFT8的软件打开文件所致,比如记事本
      

  10.   

    我的MYSQL也是UTF8的,用记事本打开备份也是乱码,用WORD就可以,
    恢复也没有问题。
      

  11.   

    不可能是utf8的呀
    my.ini文件里2处default-character-set=gb2312我都设置gb2312
    建库建表都加了CHARACTER SET gb2312,怎么会变utf8
    呵呵,另外加问个问题,mysql恢复时候,是不是要删除原来存在的数据库,然后建库,才能恢复?
      

  12.   

    要检查一下数据库、表、字段的字符集设置,其实这并不是问题,你用WORD
    打开就是正常的。
    可以不要删除原来存在的数据库,直接使用,也可以加上如果存在则删除,
    重新建立数据库,根据你的习惯,如果你要干净的数据库,则删除。
      

  13.   

    openFileDialog1.ShowDialog();
    string url = openFileDialog1.FileName;
    System.Diagnostics.ProcessStartInfo Info = new System.Diagnostics.ProcessStartInfo();
                Info.FileName = @"C:\Program Files\MySQL\MySQL Server 5.0\bin\mysql.exe";
                Info.Arguments = "--host=192.168.123.14 --user=root --password=123456 labelprint < \"" + string.Format("{0}", url) + "\"";
                System.Diagnostics.Process proc;
                try
                {
                    proc = System.Diagnostics.Process.Start(Info);
                }
                catch (System.ComponentModel.Win32Exception ex)
                {
                    MessageBox.Show("找不到指定程序文件");
                    return;//
                } 
    我删除原有数据库,然后恢复,为什么恢复不了,能看看那里错了吗
    问下在程序里用命令来备份合适吗?还有没其他方法在程序里备份
      

  14.   

    在你的SQL文件中加入:
    DROP DATABASE IF EXISTS db_name
    CREATE DATABASE IF NOT EXISTS db_name CHARACTER SET utf8
        
      

  15.   

    我删数据库后,建了个labelprint数据库了的
      

  16.   

    恩, 备份出来的sql文件用记事本打开是乱码,用word打开是正常的,你说没问题了呀
    我就试还原了,在程序里不报错误,因为在还原过程中黑DOS一闪而过看不清楚
      

  17.   

    现在还原不了
    string s = "--host=192.168.123.14 --user=root --password=123456 labelprint < \"" + string.Format("{0}", url) + "\""; 
    Process.Start(@"C:\Program Files\MySQL\MySQL Server 5.0\bin\mysql.exe", s); 
    我就用这两句还原的
      

  18.   

    在MYSQL中执行上述命令,看看提示什么错误信息
      

  19.   

    导入 :
    mysql -udump_user -pdump_user woshittest< 1.txt
      

  20.   

    1、备份
    在MY。INI中加入
    [client]
    add-drop-database=TRUE
    MYSQLDUMP -uroot -B -p ZZ>D:\ZZ\123.TXT
    即有
    DROP DATABASE IF EXISTS db_name
    CREATE DATABASE IF NOT EXISTS db_name CHARACTER SET utf8 
      

  21.   

    在MY。INI中加入 
    [client] 
    add-drop-database=TRUE 
    之后,我mysql都打不开了啊
    不太懂你的意思
    我现在的问题是:利用命令在DOS里备份和还原是正常的
    用代码备份出来SQL文件是乱码,利用备份出来的文件无法还原
    我建库,建表,建字段都是uft8,my.ini里也是UTF8
    为什么利用代码备份出来的就是乱码?
      

  22.   

    1、进入MYSQL目录,输入MYSQLDUMP --help,会看到帮助
    [client]
    add-drop-database=TRUE
    在5.1。17下没有问题,我测试过,即
    DROP DATABASE IF EXISTS db_name
    CREATE DATABASE IF NOT EXISTS db_name CHARACTER SET utf8 
    如果要备份SP、TRGGER、UDF等等,加入参数
    MYSQLDUMP -uroot -B -E -R -p TEST>D:\ZZ\123.TXT
      

  23.   

    2、导入:
    shell> mysql target_db_name < backup-file.sql
    即 shell> mysql 库名 < 文件名
      

  24.   

    1、备份没有问题,如果没有加入参数,只会备份表,加入后,SP、TRGGER、UDF、
    EVENT都可以备份,乱码用WORD打开就OK;
    2、导入:你在MYSQL下导入试试有无问题。