http://www.perlmonks.org?node_id=1012837


in reply to Re^2: DBD::mysql fail install check
in thread DBD::mysql fail install check

:) :P :D *groan* you "apple" people ;)

Remember DBD::mysql trouble? well you really have go to deep, like Re: issues with DBD::mysql on mac, dyld: lazy symbol binding failed (was MAC OS 10.6 upgrade breaks DBD:mysql), Getting DBD-mysql to work with Mac OS X Lion, Re: libwww-perl fails, Re^2: Error with DynaLoader.pm and DBD::mysql, Re^2: Fuse and fuse_loop, Re^2: possible to bake LD_LIBRARY_PATH in perl(1)?, Re: DBD-mysql: dyld error ...

Its always

export DYLD_LIBRARY_PATH="/usr/local/mysql/lib:$DYLD_LIBRARY_PATH" , use ldd or otool on the .bundle/.dylib/.so to figure out what LD_LIBRARY_PATH you need to add

Or link against the 32bit libmysql for 32bit perl, or 64bit mysql for 64bit perl

Or export VERSIONER_PERL_PREFER_32_BIT=no ? export VERSIONER_PERL_PREFER_32_BIT=yes ? then recompile

Or compile mysql client libraries yourself ( sh configure ... ), not use "macports" or "fink" .. whatever apple-ness binaries you're using, or get newer binaries ...

Or uninstall mysql-dev with fink and then install mysql15-dev (or whatever non-fink apple-ness binaries

Or compile mysql client libraries yourself using similar ccflags/ldflags/lddlflags as your perl ( or remove some --ppc flag that shouldn't be there )

Or use install_name_tool ... Problems installing DBD::mysql on OS X Snow Leopard, http://search.cpan.org/dist/DBD-mysql/README.OSX/Problems installing DBD::MySQL on OS X...: Apple Support Communities

Or a combination of one or more of these, or more basic, like non standard install paths needing INC=/LIBS= ... INSTALL.pod

Or even more basic, using the wrong shebang, path to perl, not having permissions to read mysql.bundle....

98/100 its basic path management, some $PATH some $LD_LIBRARY_PATH/$DYLD_LIBRARY_PATH , so try that first

Replies are listed 'Best First'.
Re^4: DBD::mysql fail install check (objdump -p missing symbol)
by Anonymous Monk on Aug 14, 2013 at 02:36 UTC

    Or for error of form Can't load '/tmp/perl_tmp/DBD-Oracle-1.64/blib/arch/auto/DBD/Oracle/Oracle.so' for module DBD::Oracle: /tmp/perl_tmp/DBD-Oracle-1.64/blib/arch/auto/DBD/Oracle/Oracle.so: undefined symbol: charsetid at /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/DynaLoader.pm line 230.

    You run ldd -V to get a list of .so's it depends on, if any are missing, find them, adjust LD_LIBRARY_PATH

    If none are missing, search each one with objdump -p ...so |grep missingsymbolname

    Then search your harddisk ( locate ) for same-name-.so-s in different paths, and check with objdump if these alternates have the missingsymbolname, and adjust LD_LIBRARY_PATH

    If you can't find the .so with the required symbol, upgrade, install a newver version of the library

Re^4: DBD::mysql fail install check
by berbo (Initiate) on May 09, 2014 at 19:52 UTC
    In my case, some combination of these.

    This is just an FYI, having struggled through installing DBD-mysql on OSX (yet again).

    32 or 64 bit? The system Perl that came with Mavericks is dual architecture. But this time around I was installing using perlbrew, which is 64 bit. So,duh, I need the 64-bit MySQL database.

    That means I don't need to set VERSIONPER_PERL_PREFER_32_BIT anymore.

    Oh, don't forget to stop the 32-bit and start the 64 bit first.

    Then, set DYLD_LIBRARY_PATH before building the module.