【问题标题】:Access path denied when backing up database using mysqlBackup使用 mysqlBackup 备份数据库时访问路径被拒绝
【发布时间】:2014-10-18 13:30:45
【问题描述】:

我正在尝试使用以下代码从 mysql 本地服务器备份我的数据库:

string folder = DateTime.Now.Date.ToString("yyyy-MM-dd");                  
var root = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath),"Database backup");
var newFolderPath = Path.Combine(root, folder);

if (!Directory.Exists(newFolderPath))  // if it doesn't exist, create
    Directory.CreateDirectory(newFolderPath);

MySqlConnection myCon = frmStudentsSignup.establishConnectionToMysql();
using(MySqlCommand cmd = new MySqlCommand()) {
  using(MySqlBackup mb = new MySqlBackup(cmd)) {
    cmd.Connection = myCon;
    myCon.Open();
    mb.ExportToFile(newFolderPath);
    myCon.Close();
  }
}

午餐后这条线

mb.ExportToFile(newFolderPath);

我明白了

access to the path ... is denied.

我的路径位于visual studio项目目录。

另外一个新目录的创建工作正常,所以我不知道可能出了什么问题。

【问题讨论】:

    标签: c# mysql mysql-backup


    【解决方案1】:

    只是一个建议,但您可以尝试在目录路径中使用尾部斜杠,即将 newFolderPath 分配行更改为

    var newFolderPath = Path.Combine(root, folder) + Path.DirectorySeparatorChar;
    

    如果这没有帮助,请尝试使用较短且不包含空格或破折号 (-) 等特殊字符的路径,例如C:\测试路径\

    【讨论】:

    • 谢谢@Svein,但它没有用。我试过 'var newFolderPath = "C:\\test\\" ' 它让我找不到路径。如果我尝试 '"C:\\test' 它会给我拒绝访问...我尝试将 'Path.DirectorySeparatorChar' 添加到路径中,也没有效果。
    【解决方案2】:

    您正在尝试另存为文件夹,而不是文件。这是修复:

    string folder = DateTime.Now.Date.ToString("yyyy-MM-dd");
    var root = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "Database backup");
    var newFolderPath = Path.Combine(root, folder);
    
    if (!Directory.Exists(newFolderPath))  // if it doesn't exist, create
        Directory.CreateDirectory(newFolderPath);
    
    // Fixed
    string newFileFolderPath = Path.Combine(newFolderPath, "mybackup.sql");
    
    MySqlConnection myCon = frmStudentsSignup.establishConnectionToMysql();
    using (MySqlCommand cmd = new MySqlCommand())
    {
        using (MySqlBackup mb = new MySqlBackup(cmd))
        {
            cmd.Connection = myCon;
            myCon.Open();
            mb.ExportToFile(newFileFolderPath);
            myCon.Close();
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多