2015-11-25 65 views
0

突然間,我們在日誌中顯示CGI錯誤,其中一個頁面無法正常工作。我檢查了語法,但我找不到錯誤..任何幫助將不勝感激。Perl編譯錯誤編譯失敗,需要

這是我們在瀏覽器中出現錯誤:

Archive.pl:DBD :: mysql的:: ST執行所失敗:SELECT命令拒絕用戶mnin_user'@ 'localhost' 的表「的需求'在/home/mnin/MNN_Code/Prod/lib/MySQL.lib線52 編譯失敗在archive.pl線需要9.

MySQL.lib的

線47-61讀取:

sub RunSQL { 
## Executes an sql statement on the database. 
my $sqlquery = shift; 

$sth = $dbh->prepare($sqlquery); 
$sth->execute();    #this is line 52 

$MySQL_LastQuery = $sqlquery; 

if ($sth->err()) { 
    return 1, $sth->errstr(); 
} else { 
    return 0, $sth->rows; 
} 
} 

這是Archvie.pl多達10行

#!/usr/bin/perl 

use CGI::Carp qw(fatalsToBrowser); # uncommenting this during debugging  phase may be helpful 
#use HTML::Template; 
#use Win32::ODBC; 

read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); 

if($ENV{'REQUEST_METHOD'} eq "POST") { @pairs = split(/&/, $buffer);} 
else { @pairs = split(/&/, $ENV{'QUERY_STRING'});} 

Althought我不認爲這個問題是在Archive.pl becaue這些編譯錯誤都出現在多個地方。

+3

這不是您的代碼問題,而是您的數據庫配置問題。你讀過錯誤信息了嗎?它說_command拒絕user_。與您的數據庫管理員聯繫。 – simbabque

+0

一般提示:以前工作的代碼突然停止工作時,考慮發生了什麼變化是很好的故障排除。如果代碼沒有改變,則問題可能是由其他原因引起的:數據庫升級,操作系統升級,解釋器升級,服務器移動,配置更改等。考慮更改的內容將有助於縮小問題範圍,即使您不希望在這種情況下,你總是會有如此明確的錯誤信息。 – ThisSuitIsBlackNot

回答

1

SELECT命令拒絕用戶mnin_user'@「localhost」的表「需要」

這表明你根本沒有必要進行查詢的權限。至少,您需要使用以下命令授予的權限:

GRANT SELECT ON `needs` TO 'mnin_user'@'localhost';