2014-10-04 3 views
2

Я использую perl 5.18.1.1800 с ppm 4.19 в 64-разрядной машине Windows 7.Установка DBI-mysql для Perl 5.18.xx

Мне нужно использовать DBD-mysql для доступа к mysql из perl. Но я получаю ниже сообщение об ошибке:

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

install_driver (MySQL) не удалось: не удается найти DBD/Mysql.pm в @INC (вы , возможно, потребуется установить DBD :: MySQL модуль)

Итак, я попытался установить DBD-mysql, но у меня его нет в моем PPM. В командной строке, когда я попытался установить, я получаю ниже ошибки

ppm install DBD-mysql 

ппм установить не удалось: не удается найти пакет, который обеспечивает DBD-MySQL

Я пытался загрузить и установить это, но для этого требуется компилятор C, которого у меня нет.

От DBD-mysql info page не упоминается поддержка модуля Perl 5.18.

Итак, должен ли я вернуться к 5.16.xx или проблема в другом?

Thanks,

ответ

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 
+0

Запуска 'C: \> пая инсталляция DBD-mysql' в командной строке работал отлично! – Navigatron

0

Название модуля - DBI. Попробуйте использовать:

ppm install DBI 

* Отказ от ответственности: Я не использовал Perl на Windows, а Perl на Linux, так что я взял на себя синтаксис для использования РРМА «пой установкой MODULENAME».

также правильный синтаксис в дальнейшем будет:

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