3 votes

Comment faire fonctionner Perl DBD::mysql sous OS X 10.7 ?

Je n'arrive pas à faire dialoguer Perl et MySQL sous OS X 10.7 Lion.

J'ai fait toutes les installations selon le livre, j'ai utilisé l'installateur PKG d'Oracle pour la dernière version de MySQL Community Server, et j'ai installé DBI et DBD::mysql via CPAN. Il n'y a eu aucun problème pendant l'installation, mais, lorsque j'essaie d'utiliser DBD::mysql pour me connecter à mon serveur de base de données local, j'obtiens l'erreur suivante :

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

Après avoir beaucoup cherché sur Google, je n'ai trouvé que des suggestions d'astuces, alors j'ai tenté le coup : http://arkoftech.wordpress.com/2011/02/10/fixing-dbdmysql-for-mysql-5-5-89-under-MacOS-10-6-x/

J'ai dû mettre à jour certains chemins d'accès dans les instructions, car sur Lion, Perl est en version 5.12 et non 5.10.

Après avoir fait ça, j'ai eu une nouvelle erreur :

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

Il doit y avoir un moyen simple de faire fonctionner MySQL et Perl sous OS X ? - AIDE !

4voto

Bart B Points 186

Après pas mal de frustration, j'ai fini par trouver une solution simple qui fonctionne.

Les détails essentiels sont les suivants : vous devez mettre à jour le fichier DYLD_LIBRARY_PATH d'inclure /usr/local/mysql/lib . Le moyen le plus simple de le faire est d'ajouter ce qui suit à votre fichier ~/.bashrc fichier :

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

J'ai donné un peu plus de détails dans un article de blog ici : http://www.bartbusschots.ie/blog/?p=2186

3voto

Jay Points 598

J'avais les mêmes symptômes, mais un problème différent : perl, par défaut, s'exécute en tant qu'exécutable 64bit, mais mon installation mysql et donc toutes ses bibliothèques sont en 32bit seulement. Forcer perl à s'exécuter en mode 32 bits a résolu le problème :

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

0voto

RightHandedMonkey Points 101

J'ai réussi à le faire fonctionner en utilisant :

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

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X