2011-01-27 4 views
6

Estoy intentando hacer funcionar DBD :: MySQL en Snow Leopard (v10.6.6). La versión predeterminada de Perl que viene con el sistema operativo es v5.10.0. Como he leído que es de 64 bits, continué y descargué e instalé una versión de 64 bits de MySQL (mysql-5.5.8-osx10.6-x86_64).Error de instalación para DBD :: MySQL en OSX v10.6.6

Instalando y configurando MySQL fue sin problemas, here's my config and version number for reference.

Utilicé CPAN para descargar DBI y los controladores DBD :: MySQL. Entonces:

  • Instalado DBI
  • instalación de un Makefile.PL
  • Ran la hacen comando desde la línea de comandos

El Makefile.PL dijo que usaría los siguientes ajustes para compilación y prueba:

 
I will use the following settings for compiling and testing: 

    cflags  (mysql_config) = -I/usr/local/mysql/include -Os -g -fno-common -fno-strict-aliasing -arch x86_64 
    embedded  (mysql_config) = 
    libs   (mysql_config) = -L/usr/local/mysql/lib -lmysqlclient -lpthread 
    mysql_config (guessed  ) = mysql_config 
    nocatchstderr (default  ) = 0 
    nofoundrows (default  ) = 0 
    ssl   (guessed  ) = 0 
    testdb  (default  ) = test 
    testhost  (default  ) = 
    testpassword (User's choice) = r00t! 
    testsocket (default  ) = 
    testuser  (User's choice) = root 

To change these settings, see 'perl Makefile.PL --help' and 
'perldoc INSTALL'. 

Multiple copies of Driver.xst found in: /Library/Perl/5.10.0/darwin-thread-multi-2level/auto/DBI/ /System/Library/Perl/Extras/5.10.0/darwin-thread-multi-2level/auto/DBI/ at Makefile.PL line 907 
Using DBI 1.616 (for perl 5.010000 on darwin-thread-multi-2level) installed in /Library/Perl/5.10.0/darwin-thread-multi-2level/auto/DBI/ 
Writing Makefile for DBD::mysql 

Todo parecía ir bien, hasta que intenté ejecutar prueba de maquillaje:

 
t/00base....................NOK 2/6#  Tried to use 'DBD::mysql'.   
#  Error: Can't load '/Users/swm/.cpan/build/DBD-mysql-4.018-Pnd2qz/blib/arch/auto/DBD/mysql/mysql.bundle' for module DBD::mysql: dlopen(/Users/swm/.cpan/build/DBD-mysql-4.018-Pnd2qz/blib/arch/auto/DBD/mysql/mysql.bundle, 2): Library not loaded: libmysqlclient.16.dylib 
# Referenced from: /Users/swm/.cpan/build/DBD-mysql-4.018-Pnd2qz/blib/arch/auto/DBD/mysql/mysql.bundle 
# Reason: image not found at /System/Library/Perl/5.10.0/darwin-thread-multi-2level/DynaLoader.pm line 207. 
# at (eval 7) line 2 
# Compilation failed in require at (eval 7) line 2. 
# BEGIN failed--compilation aborted at (eval 7) line 2. 
FAILED--Further testing stopped: Unable to load DBD::mysql 
make: *** [test_dynamic] Error 9 

está fallando, ya que parece que no puede encontrar el mysql.bundle para DBD. ¿Ha tenido alguien este problema? ¿O puede señalarme en la dirección correcta sobre qué probar a continuación? Necesito DBI/DBD :: MySQL para mi nuevo trabajo y estoy luchando por encontrar una solución.

Muchas gracias de antemano.

Respuesta

0

Es algo aparte, pero recomiendo encarecidamente configurar un perl por separado en la máquina, ya sea por fink/macports o desde la fuente, y dejar solo el sistema perl de Mac (y sus bibliotecas).

Una vez que hice esto en mi propia Mac, tuve muy pocos problemas para instalar módulos a partir de entonces, y no tuve que preocuparme de abrir un agujero accidentalmente en mi sistema operativo al romper el perl que usa el sistema.

Si fuera mi Mac, instalaría un nuevo Perl de la fuente (la distribución fuente de Perl es lo suficientemente inteligente como para instalarse, ver que está en una Mac y instalarse de manera segura en/usr/local/bin) y proceda de usted para instalar DBD :: Mysql (y los demás módulos que necesite).

+0

la combinación de MacPorts perl5.12 (que también se instala en/usr/local/bin) y locales :: lib no interferirán con el Perl sistema en todo y es realmente fácil de configurar –

13

Resolví el problema "Library not loaded: libmysqlclient.16.dylib" al colocar un enlace simbólico en/usr/lib/"a /usr/local/mysql-5.5.8-osx10.6-x86_64/ lib/libmysqlclient.16.dylib

1

trabajé alrededor de la misma o un problema similar. de alguna manera yo podría construir y probar DBD :: mysql con cpan pero cuando traté de usarlo en un guión que dicho cosas como

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

al parecer, es a 64-bit vs 32-bit issue.

Instalación del Fink dbd-mysql-pm5100 package lo hizo funcionar aunque tardó mucho tiempo. También eliminé la versión instalada en el cpan:

sudo rm -rf /Library/Perl/5.10.0/darwin-thread-multi-2level/auto/DBD/mysql 
sudo rm -rf /Library/Perl/5.10.0/darwin-thread-multi-2level/DBD/mysql 
sudo rm -rf /Library/Perl/5.10.0/darwin-thread-multi-2level/DBD/mysql.pm 
1

también se incluyen en.Perfil

export VERSIONER_PERL_PREFER_32_BIT=yes; 

Además de crear el enlace de las ejecuciones del programa con DBI::mysql generan un error, incluyendo por lo tanto esta variable sobre el medio ambiente que sea funciona

1

Sé que esto es un antiguo puesto. Pero supongo que la mejor solución sería agregar el directorio de la biblioteca a la variable de entorno DYLD_FALLBACK_LIBRARY_PATH. (Razón aquí: https://stackoverflow.com/a/3172515/119958)

No hay ldconfig en Mac, por lo que sólo tiene que añadir la ruta a este env var y vuelva a ejecutar el proceso de instalación de DBD :: mysql

Donato-Vianas-MacBook-Pro:Invoicer donato$ cpanm DBD::mysql 
--> Working on DBD::mysql 
Fetching http://www.cpan.org/authors/id/C/CA/CAPTTOFU/DBD-mysql-4.022.tar.gz ... OK 
Configuring DBD-mysql-4.022 ... OK 
Building and testing DBD-mysql-4.022 ... FAIL 
! Installing DBD::mysql failed. See /Users/donato/.cpanm/build.log for details. 

# Failed test 'use DBD::mysql;' 
# at t/00base.t line 21. 
#  Tried to use 'DBD::mysql'. 
#  Error: Can't load '/Users/donato/.cpanm/work/1359948144.491/DBD-mysql-4.022/blib/arch/auto/DBD/mysql/mysql.bundle' for module DBD::mysql: dlopen(/Users/donato/.cpanm/work/1359948144.491/DBD-mysql-4.022/blib/arch/auto/DBD/mysql/mysql.bundle, 2): Library not loaded: libmysqlclient.18.dylib 

Donato-Vianas-MacBook-Pro:Invoicer donato$ export DYLD_FALLBACK_LIBRARY_PATH=/usr/local/mysql/lib/:$DYLD_FALLBACK_LIBRARY_PATH 
Donato-Vianas-MacBook-Pro:Invoicer donato$ cpanm DBD::mysql--> Working on DBD::mysql 
Fetching http://www.cpan.org/authors/id/C/CA/CAPTTOFU/DBD-mysql-4.022.tar.gz ... OK 
Configuring DBD-mysql-4.022 ... OK 
Building and testing DBD-mysql-4.022 ... OK 
Successfully installed DBD-mysql-4.022 
1 distribution installed 
1

[lurker Desde hace mucho tiempo por primera vez cartel]

La solución de Donato funciona para la instalación, pero la var también debe estar presente en el tiempo de ejecución o me sale el mismo error. Los siguientes correcciones esta en tiempo de ejecución para la cáscara y _www usuario:

# For command line use, add following line to ~/.bash_profile: 
export DYLD_FALLBACK_LIBRARY_PATH=/usr/local/mysql/lib/:$DYLD_FALLBACK_LIBRARY_PATH 

# If Apache needs it, add following line to /etc/apache2/httpd.conf: 
# On Lion Server, I put it after <IfDefine MACOSXSERVER>, but shouldn't matter 
SetEnv DYLD_FALLBACK_LIBRARY_PATH /usr/local/mysql/lib/:$DYLD_FALLBACK_LIBRARY_PATH 
Cuestiones relacionadas