string host = "192.127.0.0.1";
            string user = "root";
            string password = "123456";
            string database = "abc";
            string fileName = database + "_bak_" + DateTime.Now.ToString("yyyyMMddhhmmss");
            string bakPath = "D:" + "\\" + fileName + ".sql";
            string cmdStr = "/c mysqldump -h" + host + " -u" + user + " -p" + password + " " + database + " > " + bakPath;
            try
            {
                System.Diagnostics.Process.Start("cmd", cmdStr);
            }
            catch (Exception ex)
            {
                //WriteLog(logPath, ex.Message);                MessageBox.Show(ex.Message);
            }
我以前都能备份的,今天要用时候就不能用了,备份出来是空的,大家看下怎么回事?

解决方案 »

  1.   

    string host = "localhost";
    确认存在并有数据的
      

  2.   

    我以前用SQLDMO写过一个#region void DoBackup() // 备份线程
            /// <summary>
            /// 备份线程
            /// </summary>
            void DoBackup()
            {
                Backup BackupDatabase = null;
                SQLServer BackupDatabaseConnection = null;
                try
                {
                    IsBackuping = true;
                    HelpAgentControl.DoAction(new Consts.SERVICE_HELPAGENT_ACTION_PROCESSING(), false);
                    BackupDatabase = new BackupClass();
                    BackupDatabaseConnection = new SQLServerClass();
                    BackupDatabaseConnection.LoginSecure = false;
                    BackupDatabaseConnection.Connect(DataBaseHost, UserID, Password);
                    BackupDatabase.Action = SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
                    BackupDatabase.Database = DataBase;
                    String FullFileName = "[" + CurrentDirectory + CurrentFileName + "]";
                    BackupDatabase.Files = @" " + FullFileName;
                    BackupDatabase.BackupSetName = DataBase;
                    BackupDatabase.BackupSetDescription = CurrentFileName;
                    BackupDatabase.Initialize = true;
                    BackupSink_PercentCompleteEventHandler BackupDatabaseProgress = new BackupSink_PercentCompleteEventHandler(SetPercent);
                    BackupDatabase.PercentComplete += BackupDatabaseProgress;
                    BackupDatabase.SQLBackup(BackupDatabaseConnection);
                    DM.SetTextSafely(MC.SlBackup, Consts.SERVICE_MONITOR_BACKUPRESTORE_BACKUP_END);
                }
                catch (Exception e)
                {
                    DM.SetTextSafely(MC.SlBackup, Consts.SERVICE_MONITOR_BACKUPRESTORE_BACKUP_ERROR(e.Message));
                    DM.SetHintTextSafely(MC.SlBackup, Consts.SERVICE_MONITOR_BACKUPRESTORE_BACKUP_ERROR(e.Message));
                }
                finally
                {
                    IsBackuping = false;
                    HelpAgentControl.DoAction(new Consts.SERVICE_HELPAGENT_ACTION_RESETPOSE(), false);
                    BackupDatabaseConnection.DisConnect();
                    DM.SetEnabledSafely(TvServerDirectories, true);
                    DM.SetEnabledSafely(TmiRefresh.Tag, true);
                    DM.SetEnabledSafely(TmiBackup.Tag, true);
                    DM.SetEnabledSafely(EdtBackupFiles, true);
                    DM.SetEnabledSafely(MoBackupFileInfo, true);
                    DM.SetVisibleSafely(MC.TspLoading, false);
                }
            }
            #endregion
      

  3.   

    有没人用过C#实现对mysql备份数据库的
    帖点代码出来
    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.79 --user=root --password=123456 character set=gb2312 abc -r \"" + string.Format("{0}", bakPath) + "\"";
                System.Diagnostics.Process proc;
                try
                {
                    proc = System.Diagnostics.Process.Start(Info);
                }
                catch (System.ComponentModel.Win32Exception ex)
                {
                    MessageBox.Show("找不到指定程序文件。\r{0}");
                    return;
                } 
    我这样写备份是乱码,我数据库abc是gb2312