Página 1 de 1

Ayuda con error CRON+Perl+Mysql

NotaPublicado: 2009-03-30 21:06 @921
por erml_2
Hola a todos.

Tengo un script Perl en un Solaris, el cual hace algunas consultas -5- a Mysql; el script ejecutándolo desde consola funciona perfecto (bash-3.1$ perl mi_script.pl).
Pero al agregarlo a un cron de usuario (0 * * * * perl /ruta/mi_script.pl) me tira este error:

Código: Seleccionar todo
install_driver(mysql) failed: Can't locate DBD/mysql.pm in @INC (@INC contains: /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl/5.8.6 /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl/5.8.6 /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8 . /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi) at (eval 3) line 3.
Perhaps the DBD::mysql perl module hasn't been fully installed, or perhaps the capitalisation of 'mysql' isn't right.
Available drivers: DBM, ExampleP, File, Gofer, Proxy, Sponge.



Agradezco cualquier ayuda posible.
Gracias y hasta pronto

NotaPublicado: 2009-03-30 21:42 @946
por kidd
Bienvenido a los foros de Perl en Español.

Lo primero sería checar que si tengas instalado el módulo DBD::mysql en las rutas de búsqueda de módulos.

Por lo que muestra el error los únicos módulos de DBI que tienes son: DBM, ExampleP, File, Gofer, Proxy, Sponge.

Saludos

NotaPublicado: 2009-03-31 01:41 @111
por explorer
Es posible que cuando lo estés ejecutando como usuario, desde consola, tengas puesta la variable PERL5LIB a algún directorio más donde está instalado MySQL.

La solución será entonces colocar esa variable en el fichero CRON, al principio, para que sea pasada a los entornos de los programas que serán ejecutados después. Al menos es así cómo se hace en Linux.