¿Cómo funciona Perl DBD :: mysql en OS X 10.7?

3

Parece que no puedo obtener Perl & MySQL para hablar entre sí en OS X 10.7 Lion.

Hice todas las instalaciones del libro, usé el instalador PKG de Oracle para el último Servidor de Comunidad MySQL, e instalé DBI y DBD :: mysql a través de CPAN. No hubo problemas en absoluto durante la instalación, pero cuando intento USAR DBD :: mysql para conectarme a mi servidor local de DB, aparece 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 un montón de buscar en Google, todo lo que pude encontrar fueron sugerencias de hacks, así que le di una oportunidad a este: enlace

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

Después de hacer eso recibí 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 obtener MySQL & Perl trabajando en OS X? - ¡AYUDA!

    
pregunta Bart B 24.11.2011 - 18:28

3 respuestas

4

Después de un poco de frustración, finalmente encontré una solución simple que funciona.

Los detalles más destacados son que necesita actualizar el DYLD_LIBRARY_PATH para incluir /usr/local/mysql/lib . La forma más sencilla de hacerlo es agregar lo siguiente a su archivo ~/.bashrc :

export DYLD_LIBRARY_PATH="/usr/local/mysql/lib:$DYLD_LIBRARY_PATH"

Entré en un poco más de detalle en una publicación del blog aquí: enlace

    
respondido por el Bart B 28.11.2011 - 11:26
3

Tenía los mismos síntomas, pero un problema diferente: perl, de forma predeterminada, se ejecuta como un ejecutable de 64 bits, pero la instalación de mysql y, por lo tanto, todas sus bibliotecas son solo de 32 bits. Obligando a Perl a ejecutarse en modo de 32 bits, lo resolvió:

defaults write com.apple.versioner.perl Prefer-32-Bit -bool yes
    
respondido por el Simon 08.10.2012 - 13:58
0

Pude hacer que esto funcionara usando:

  

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

    
respondido por el RightHandedMonkey 17.11.2015 - 22:09

Lea otras preguntas en las etiquetas