Come ottenere DBD Perl: mysql che funziona su OS X 10.7?

3

Non riesco a ottenere Perl & MySQL per parlare tra loro su OS X 10.7 Lion.

Ho fatto tutte le installazioni dal libro, ho usato il programma di installazione PKG di Oracle per l'ultimo MySQL Community Server e ho installato DBI e DBD :: mysql tramite CPAN. Non ci sono stati problemi durante l'installazione, ma, quando provo ad utilizzare DBD :: mysql per connettersi al mio server DB locale ottengo il seguente errore:

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

Dopo un sacco di googling tutto quello che ho trovato sono stati suggeriti hack, quindi ho dato questo uno a: link

Ho dovuto aggiornare alcuni dei percorsi nelle istruzioni poiché su Lion è Perl 5.12 non 5.10.

Dopo averlo fatto ho ricevuto un nuovo errore:

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

Ci deve essere un modo semplice per ottenere MySQL e amp; Perl funziona su OS X? - AIUTO!

    
posta Bart B 24.11.2011 - 18:28
fonte

3 risposte

4

Dopo un po 'di frustrazione, alla fine ho trovato una soluzione semplice che funziona.

I dettagli salienti sono che devi aggiornare DYLD_LIBRARY_PATH per includere /usr/local/mysql/lib . Il modo più semplice per farlo è aggiungere quanto segue al tuo file ~/.bashrc :

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

Sono andato un po 'più in dettaglio in un post sul blog qui: link

    
risposta data 28.11.2011 - 11:26
fonte
3

Ho avuto gli stessi sintomi, ma un problema diverso: perl, per impostazione predefinita, funziona come eseguibile a 64 bit, ma la mia installazione mysql e quindi tutte le sue librerie sono solo a 32 bit. Forzare perl per funzionare in modalità 32 bit risolto:

defaults write com.apple.versioner.perl Prefer-32-Bit -bool yes
    
risposta data 08.10.2012 - 13:58
fonte
0

Sono riuscito a farlo funzionare usando:

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

    
risposta data 17.11.2015 - 22:09
fonte

Leggi altre domande sui tag