[英]Access denied error when connecting to remote MySQL server using Perl DBD-mysql
[英]Error connecting MySQL with Perl
我想使用 DBI 將 MySQL 與 Perl 連接起來。 問題是每當我嘗試使用 CGI 連接到 MySQL 時,都會出現此錯誤:
Software error:
install_driver(mysql) failed: Can't load 'C:/xampp/perl/vendor/lib/auto/DBD/mysql/mysql.dll' for module DBD::mysql: load_file:%1 is not a valid Win32 application at C:/xampp/perl/lib/DynaLoader.pm line 190.
at (eval 6) line 3.
Compilation failed in require at (eval 6) line 3.
Perhaps a required shared library or dll isn't installed where expected
at C:/xampp/htdocs/samples/insert1.cgi line 16.
這是我擁有的代碼:
#!"C:\\xampp\\perl\\bin\\perl.exe" use strict; use warnings; #include libraries use CGI; use CGI::Carp qw(fatalsToBrowser); use DBI; print "Content-type: text/html\\n\\n"; ## mysql user database name my $db ="mysql"; ## mysql database user name my $user = "root"; ## mysql database password my $pass = ""; ## user hostname : This should be "localhost" but it can be diffrent too my $host="localhost"; ## SQL query my $query = "show tables"; my $dbh = DBI->connect("DBI:mysql:$db:$host", $user, $pass); my $sqlQuery = $dbh->prepare($query) or die "Can't prepare $query: $dbh->errstr\\n"; my $rc = $sqlQuery->execute or die "can't execute the query: $sqlQuery->errstr"; #start the HTML print "Content-type:text/html\\r\\n\\r\\n"; print "<HTML>"; print "<HEAD>"; print "<TITLE>GeneMIS</TITLE>"; print "</HEAD>"; print "<BODY bgcolor=white>"; print "<h3>********** My Perl DBI Test ***************</h3>"; print "<p>Here is a list of tables in the MySQL database $db.</p>"; while (my @row= $sqlQuery->fetchrow_array()) { my $tables = $row[0]; print "$tables\\n<br>"; } my $rc = $sqlQuery->finish; #end the HTML print "</BODY></HTML>"; exit(0);
我的 DBI 工作得很好,文件夾中已經有 mysql.dll。 我已經在環境變量中包含了路徑,但它仍然不起作用。
我找到了解決此錯誤的方法。 首先,我刪除了xampp 文件夾中的perl 文件夾,然后將草莓文件夾中的perl 文件夾復制到了xampp 文件夾中
刪除C:\\xampp\\perl 中的 perl 文件夾
然后轉到C:\\strawberry 並將 perl 文件夾復制到 C:\\xampp
然后重新啟動 xampp 並再次運行該程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.