3 votos

¿Conseguir que Perl DBD::mysql funcione en OS X 10.7?

No puedo conseguir que Perl y MySQL se comuniquen entre sí en OS X 10.7 Lion.

Hice todas las instalaciones según el libro, utilicé el instalador PKG de Oracle para el último MySQL Community Server, e instalé DBI y DBD::mysql vía CPAN. No hubo ningún problema durante la instalación, pero, cuando trato de usar DBD::mysql para conectarme a mi servidor local de bases de datos obtengo el siguiente error:

install_driver(mysql) failed: Can't load '/Library/Perl/5.12/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle' for module DBD::mysql: dlopen(/Library/Perl/5.12/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle, 1): Library not loaded: /usr/local/mysql/lib/libmysqlclient.16.dylib
  Referenced from: /Library/Perl/5.12/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle
  Reason: image not found at /System/Library/Perl/5.12/darwin-thread-multi-2level/DynaLoader.pm line 204.
 at (eval 3) line 3
Compilation failed in require at (eval 3) line 3.
Perhaps a required shared library or dll isn't installed where expected

Después de mucho buscar en Google, todo lo que pude encontrar fueron sugerencias de hacks, así que probé este: http://arkoftech.wordpress.com/2011/02/10/fixing-dbdmysql-for-mysql-5-5-89-under-MacOS-10-6-x/

Tuve que actualizar algunas de las rutas en las instrucciones ya que en Lion es Perl 5.12 y no 5.10.

Después de hacer eso me salió un nuevo error:

dyld: lazy symbol binding failed: Symbol not found: _mysql_init
  Referenced from: /Library/Perl/5.12/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle
  Expected in: flat namespace

dyld: Symbol not found: _mysql_init
  Referenced from: /Library/Perl/5.12/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle
  Expected in: flat namespace

Trace/BPT trap: 5

¿Debe haber una forma sencilla de conseguir que MySQL y Perl funcionen en OS X? - ¡AYUDA!

3voto

Jay Puntos 598

Yo tenía los mismos síntomas, pero un problema diferente: perl, por defecto, se ejecuta como un ejecutable de 64 bits, pero mi instalación de mysql y por tanto todas sus librerías son de 32 bits solamente. Forzando a perl a ejecutarse en modo de 32 bits se solucionó:

defaults write com.apple.versioner.perl Prefer-32-Bit -bool yes

0voto

Ka Rl Puntos 6

He podido conseguir que esto funcione utilizando:

sudo ln -s /usr/local/mysql/lib/*.dylib .

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X