Perl中的MySQL错误(错误代码2)

Perl中的MySQL错误(错误代码2),mysql,perl,Mysql,Perl,我是Perl方面的新手。我有一个小潜艇 sub processOpen{ my($filename, $mdbh)=@_; my($qr, $query); # parse filename to get the date extension only # we will import the data into the table with this extension # /home//logs/open.v7.20120710_2213.log

我是Perl方面的新手。我有一个小潜艇

sub processOpen{
    my($filename, $mdbh)=@_;
    my($qr, $query);

    # parse filename to get the date extension only
    # we will import the data into the table with this extension
    # /home//logs/open.v7.20120710_2213.log
    my(@fileparts) = split(/\./, $filename);
    my(@filedateparts) = split(/_/, $fileparts[2]);
    my($tableext) = $filedateparts[0];


    $query = "LOAD DATA INFILE '" . $filename . "' INTO TABLE open_" . $tableext . " FIELDS TERMINATED BY '||' LINES TERMINATED BY '\n'
              (open_datetime, open_date, period,tag_id)";

    $qr = $$mdbh->prepare($query);
    $qr->execute(); # causes error (see below)
    $qr->finish();
}
我得到了以下错误:

DBD::mysql::st execute失败:无法获取“/home/logs/open..v7.20120710_2213.log”的状态,错误代码:2位于/home/thisfile.pm第32行


第32行是$qr->execute

错误代码2很可能是找不到文件


你的文件存在吗?请注意,如果在MySQL数据库之外的单独主机上运行perl,则文件必须位于数据库主机上,而不是客户端主机上。

这是找不到的文件的GobbleDeBook版本。mysql没有访问该目录树的权限,或者该文件不存在。谢谢,但是文件在那里,perms是正确的…文件名打开了吗..v7。。。有两个点,或打开。v7。。。用一个点?那么你输入的错误信息是不是错了?或者您是否将错误的$filename参数传递给了您的子例程?我错过了错误消息开头的DBD::。