为Perl 5.18.xx安装DBI-mysql

时间:2014-10-04 07:10:41

标签: perl perl-module dbi

我在Windows 7 64位计算机上使用perl 5.18.1.1800和ppm 4.19。

我需要使用DBD-mysql才能从perl访问mysql。但我得到以下错误信息:

use DBI();
my $dbh = DBI->connect("DBI:mysql:database=mydbname;host=localhost","myuser", "mypass",{'RaiseError' => 1})
  

install_driver(mysql)失败:无法在@INC中找到DBD / mysql.pm(你   可能需要安装DBD :: mysql模块)

所以我尝试安装DBD-mysql,但我没有在我的PPM中列出。在命令行中,当我尝试安装时,我得到以下错误

ppm install DBD-mysql
  

ppm安装失败:无法找到任何提供DBD-mysql的软件包

我尝试下载并安装它,但它需要一个我没有的C编译器。

DBD-mysql info page开始,没有提到对该模块的Perl 5.18支持。

那么,我应该恢复到5.16.xx还是其他问题?

谢谢,

2 个答案:

答案 0 :(得分:2)

DBD-mysql可用于ActivePerl-5.16.3.1604。恢复到该版本可能比安装编译器自己构建软件包更简单。

Activestate使用Visual Studio构建DBD-mysql:http://ppm4.activestate.com/MSWin32-x86/5.16/1600/C/CA/CAPTTOFU/DBD-mysql-4.022.d/log-20120830T032945.txt

enter image description here

C:\>ppm install DBD-mysql
Downloading ActiveState Package Repository packlist...done
Updating ActiveState Package Repository database...done
Syncing site PPM database with .packlists...done
Downloading DBD-mysql-4.022...done
Unpacking DBD-mysql-4.022...done
Generating HTML for DBD-mysql-4.022...done
Updating files in site area...done
  12 files installed

答案 1 :(得分:0)

模块的名称是DBI。尝试使用:

ppm install DBI

*免责声明:我没有在Windows上使用Perl,而是在Linux上使用Perl,因此我假设使用ppm的语法是“ppm install modulename”。

此外,以下正确的语法是:

my $dbh = DBI->connect(DBI:mysql:DBNAME, $username, $pass, {RaiseError => 1, AutoCommit 
=> 1}) or die "Could not Connect to DB";