2010-11-17 15 views
7

Estoy buscando una buena guía con pasos secuenciados y detallados para instalar Perl Strawberry, MySQL y DBD :: mysql en Windows XP.Pasos secuenciados para instalar Perl Strawberry, MySQL y DBD :: mysql en Windows XP

El principal objetivo que quiero lograr aquí es tener la capacidad de crear bases de datos y realizar acciones regulares contra ellos a través de Perl fresa utilizando DBD :: mysql

que he encontrado this hasta ahora, pero es un poco obsoleto y no quiero pasar por todo eso solo para descubrir que no funciona.

Lo que he conseguido por mi cuenta (en otra computadora) es instalar Perl Strawberry y trabajar correctamente, instalar MySQL e INTENTAR usar cpan DBD::mysql para instalar el módulo (que falló porque no pudo encontrar) MySQL - También probé la opción --with-mysql=C:\path\to\mysql que sugiere, pero eso no funciona para mí)

+0

terminé usando 'DBI' en su lugar – CheeseConQueso

+0

Usted dice *" terminé usando DBI en cambio "*. Esa es una afirmación extraña ya que 'DBI' usa los módulos' DBD' apropiados para comunicarse con una base de datos.Entonces, 'DBI' necesitaría' DBD :: mysql' para poder interactuar con una base de datos MySQL. –

+0

@Sinan - esa es una pieza clave de información que me faltaba. tengo 'use DBI;' y 'DBI-> connect ('DBI: mysql: db', '', '', \% dbattr)' así que pensé que el dbd era un módulo completamente diferente. gracias por aclarar eso hasta – CheeseConQueso

Respuesta

7

AFAIK, las versiones recientes de Strawberry vienen incluidas con DBD::mysql.

Además, Strawberry Perl proporciona ppm para instalar paquetes binarios precompilados.

+0

Sí, StrawberryPerl viene incluido con controladores para MySQL, PostgreSQL y ODBC. Simplemente instalar StrawberryPerl es suficiente. – MichielB

+1

En realidad, no se recomienda usar 'ppm' en Strawberry para instalar binarios precompilados, simplemente compilarlos usando cpan o cpam y las herramientas de compilación incluidas. – MichielB

0

Si está buscando una solución "simplemente funciona" puede probar ActivePerl, donde puede instalar DBD :: mysql como un binario precompilado a través de ppm.

0

También hay DWIM Perl que contiene muchos módulos adicionales populares como Moose, Dancer, Perl Critic, Perl Tidy e incluso Perl IDE - Padre.

Parece que usar una de estas instalaciones es el método más fácil, ya que todavía obtiene los beneficios de tener un cpan funcional y compilar la mayoría de sus módulos para su perl. La última vez que utilicé el perl + cpan de activestate recuerdo que después de instalar algunos módulos a través de cpan un montón de cosas dejaron de funcionar, así que desistí de hacerlo. Instalar todos los paquetes a través de ppm, o usar su horrible administrador de GUI ppm no me fue bien, ya que independientemente del sistema en el que estoy, instintivamente uso cpam y me gustaría tener todos mis módulos compilados/instalados al estilo Perl.

9

Quería instalar bugzilla en mi máquina local de Windows 7 y tuve un problema similar con mysql.

Aunque el mecanismo de actualización automática de Perl de fresa funcionó muy bien e instaló todos los paquetes faltantes, parece que, a partir de cierta versión de perl de fresa (utilicé 5.16.1.1), el controlador mysql tiene un problema.

me sale un error diciendo:

install_driver(mysql) failed: Can't load 'C:/Perl/site/lib/auto/DBD/mysql/mysql.dll' for module DBD::mysql: load_file:The specified module could not be found at C:/Perl/lib/DynaLoader.pm line 230. at (eval 34) line 3 Compilation failed in require at (eval 34) line 3.

Pero el archivo necesario estaba allí, así que después de mucho buscar en la web, he encontrado una solución en la sección de comentarios de un artículo (http://lpsolit.wordpress.com/2010/05/15/installing-dbdmysql-what-a-pain/):

"For the record, and thanks to glob, the way to fix the problem with Strawberry Perl is to copy C:\strawberry\c\bin\libmysql_.dll to C:\strawberry\perl\vendor\lib\auto\DBD\mysql\libmysql_.dll. Yay!"

funciona!

Espero que esto ayude a otras personas que tienen el mismo problema.

+0

gracias que ayudó! Revisé el directorio y vi una DLL allí, pero no tenía idea de que la segunda DLL también debía copiarse allí. ¡Tan pronto como lo hice, Bugzilla funcionó! – paul

Cuestiones relacionadas