我们正在进行一个数据迁移项目,源数据库和目标数据库都是MySql(版本:5.0.45-community-nt)。
目前源数据库和目标数据库都托管在我的本地计算机 (Windows XP SP2) 上。
我们正在使用名为“Pentaho Spoon”的工具来编写用于迁移的 ETL 脚本。勺子转换获取数据并将其加载到目标数据库中。
转换是一组选择和插入步骤。
问题:
执行脚本会针对转换中的 select 语句引发以下错误:
Can't create/write to file 'C:\Program Files\MySQL\MySQL Server 5.0\Data\#sql_29c_0.MYI' (Errcode: 17)
ErrCode 17 指:操作系统错误代码 17:文件存在
值得注意的是,运行时在
#sql_29c_0.MYI
目录中创建了一些以#sql_29c_0.MYD
、C:\Program Files\MySQL\MySQL Server 5.0\Data
格式命名的随机临时文件,这些文件在进程中被删除并以相同的名称创建。
Pentaho Spoon 使用多线程来执行转换。
有人遇到过这个问题吗?解决上述错误的任何指示都会有所帮助。
如果需要有关该错误的任何进一步信息,请告诉我。
谢谢
编辑(8 月 27 日至 10 日):
提供有关此错误的更多信息:
勺子转换有一个步骤,获取 6000 行,然后这些行中的每一行都进一步用于涉及两个表联接的其他查询。此连接查询失败并出现上述错误 -
Errcode 17
。
解决方案很简单。
进入
temp
下的 C:\Program Files\MySQL\MySQL Server 5.0\
文件夹,然后删除 Data#sql_29c_0.MYI
。
全部完成。
在我的例子中,错误
Data#sql_###
指定到我的服务器中的目录c:\Windows\Temp
。
我删除了临时文件,然后错误消失了。