【问题标题】:mysql Error:13 MyISAM table file not foundmysql 错误:13 MyISAM 表文件未找到
【发布时间】:2012-12-28 05:54:20
【问题描述】:

我有一组文件(每个大约 20MB)需要插入到 mysql 的表中。插入是在所有文件的循环中完成的(单线程)。这通常可以正常工作,但有时我会收到以下异常:File '.table.MYD' not found (Errcode: 13) 用于集合中间的一个文件(前 50 个运行正常,接下来的 2-3 个将失败,然后以下将再次运行正常)。如果我只是在 mysql 工作台中重新运行失败文件的查询(或重新运行失败的文件),它们工作正常。该表刚刚创建,没有索引 - 因此不应该存在诸如“索引失败”、表碎片或任何其他问题之类的问题。

下面是完整的堆栈跟踪:

File '.dbtable.MYD' not found (Errcode: 13)
----------------------------------
 at MySql.Data.MySqlClient.MySqlStream.ReadPacket()
 at MySql.Data.MySqlClient.NativeDriver.GetResult(Int32& affectedRow, Int32& insertedId)
 at MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId, Boolean force)
 at MySql.Data.MySqlClient.MySqlDataReader.NextResult()
 at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
 at MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery()
 at Utils.SqlUtils.ExecMysql(String sql, String connection)
 at Utils.MySqlExecQueue.DoExec(Object data)
----------------------------------
MySql.Data

地点:
+ ExecMysql - 看起来像

using (MySqlConnection cnn = new MySqlConnection(connection))
{
  cnn.Open();

  using (MySqlCommand cmd = new MySqlCommand(sql, cnn))
  {
    cmd.CommandType = CommandType.Text;
    cmd.ExecuteNonQuery();
  }
}

+DoExec 是一种从队列中获取文件、创建 sql 语句并调用上述ExecMysql 的方法。
+插入代码和mysql在同一台机器上(Windows 2008, x64);
+该机器上没有运行可能锁定表文件的防病毒软件或任何其他工具(如在某些博客上找到的那样);
+c#(.net 4)代码使用mysql连接器6.5.4,mysql版本为5.5;

我已经实施了一个虚拟解决方法,例如“try-to-insert-while-13error-exception-is-throw”,但我强烈认为这不是正确的解决方案。

知道发生了什么以及如何一劳永逸地解决这个问题吗?

更新 - 显然,“try-to-insert-while-13error-exception-is-throw”修复不是一个好主意:我在运行 SELECT 时遇到了同样的异常成功插入数据后的表。

更新 2 - 检查了日志,我注意到另一个奇怪的异常:Error on rename of '.\db\table.MYD' to '.\db\#sql2-4e4-1677.MYD' (Errcode: 17) ... 情况正在好转...

【问题讨论】:

    标签: c# mysql exception file-not-found loaddata


    【解决方案1】:

    您有任何防病毒软件吗?如果是这样,请确保 mysql 目录及其临时文件夹已从 AV 中排除,然后重试。

    【讨论】:

    • 不,那台机器上没有防病毒软件。
    猜你喜欢
    • 2012-07-13
    • 2011-09-20
    • 1970-01-01
    • 2014-03-23
    • 1970-01-01
    • 1970-01-01
    • 2021-09-10
    • 2021-10-22
    • 1970-01-01
    相关资源
    最近更新 更多