in reply to Re: Installing DBD problems
in thread Installing DBD problems

Here is the results for make test. Can you see why installation went wrong?
PERL_DL_NONLAZY=1 /usr/bin/perl -Iblib/arch -Iblib/lib -I/usr/lib/perl +5/5.6.1/i686-linux -I/usr/lib/perl5/5.6.1 -e 'use Test::Harness qw(&r +untests $verbose); $verbose=0; runtests @ARGV;' t/*.t t/00base............install_driver(mysql) failed: Can't load 'blib/arc +h/auto/DBD/mysql/mysql.so' for module DBD::mysql: blib/arch/auto/DBD/ +mysql/mysql.so: undefined symbol: mysql_store_result at /usr/lib/perl +5/5.6.1/i686-linux/DynaLoader.pm line 206. at (eval 1) line 3 Compilation failed in require at (eval 1) line 3. Perhaps a required shared library or dll isn't installed where expecte +d at t/00base.t line 38 t/00base............dubious + Test returned status 255 (wstat 65280, 0xff00) DIED. FAILED tests 4-5 Failed 2/5 tests, 60.00% okay t/10dsnlist.........install_driver(mysql) failed: Can't load 'blib/arc +h/auto/DBD/mysql/mysql.so' for module DBD::mysql: blib/arch/auto/DBD/ +mysql/mysql.so: undefined symbol: mysql_store_result at /usr/lib/perl +5/5.6.1/i686-linux/DynaLoader.pm line 206. at (eval 1) line 3 Compilation failed in require at (eval 1) line 3. Perhaps a required shared library or dll isn't installed where expecte +d at t/10dsnlist.t line 45 t/10dsnlist.........dubious + Test returned status 255 (wstat 65280, 0xff00) DIED. FAILED tests 1-3 Failed 3/3 tests, 0.00% okay t/20createdrop......install_driver(mysql) failed: Can't load 'blib/arc +h/auto/DBD/mysql/mysql.so' for module DBD::mysql: blib/arch/auto/DBD/ +mysql/mysql.so: undefined symbol: mysql_store_result at /usr/lib/perl +5/5.6.1/i686-linux/DynaLoader.pm line 206. at (eval 1) line 3 Compilation failed in require at (eval 1) line 3. Perhaps a required shared library or dll isn't installed where expecte +d at t/20createdrop.t line 45 t/20createdrop......dubious + Test returned status 255 (wstat 65280, 0xff00) DIED. FAILED tests 1-5 Failed 5/5 tests, 0.00% okay t/30insertfetch.....install_driver(mysql) failed: Can't load 'blib/arc +h/auto/DBD/mysql/mysql.so' for module DBD::mysql: blib/arch/auto/DBD/ +mysql/mysql.so: undefined symbol: mysql_store_result at /usr/lib/perl +5/5.6.1/i686-linux/DynaLoader.pm line 206. at (eval 1) line 3 Compilation failed in require at (eval 1) line 3. Perhaps a required shared library or dll isn't installed where expecte +d at t/30insertfetch.t line 48 t/30insertfetch.....dubious + Test returned status 255 (wstat 65280, 0xff00) DIED. FAILED tests 1-11 Failed 11/11 tests, 0.00% okay t/40bindparam.......install_driver(mysql) failed: Can't load 'blib/arc +h/auto/DBD/mysql/mysql.so' for module DBD::mysql: blib/arch/auto/DBD/ +mysql/mysql.so: undefined symbol: mysql_store_result at /usr/lib/perl +5/5.6.1/i686-linux/DynaLoader.pm line 206. 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 expecte +d at t/40bindparam.t line 64 t/40bindparam.......dubious + Test returned status 255 (wstat 65280, 0xff00)

Replies are listed 'Best First'.
Re: Re: Re: Installing DBD problems
by MZSanford (Curate) on Oct 16, 2001 at 13:19 UTC
    I do not usually work on Linux, but on Solaris/HP/SGI/etc, this is sometimes caused by not having the MySQL .so (mysql.so) file in the LD_LIBRARY_PATH environment variable. I would check $LD_LIBRARY_PATH and $SHLIB_PATH, and make sure that both contain the directory your mysql library is in (not sure which of the two environment variables is used by Linux.)

    Also, and i hate to say this, but another test is to run make install, and then try to use the driver. I have seen the DBD::Sybase driver fail 90% of tests, and still work once installed (usually because of path setups).
      I ran make install and something seems to have improved. When I run the script
      use strict; use DBI; #probe DBI for available drivers my @drivers = DBI->available_drivers(); ##iterate through drivers and list the data source for each one foreach my $driver (@drivers) { print "Driver: $driver<br>"; if ($driver ne "Proxy" && $driver ne "Multiplex") ##DBD:Proxy and +DBD::Multiplex have problem with datasources { my @datasources = DBI->data_sources($driver); foreach my $datasource (@datasources) { print "\tData Source is $datasource<br>"; } } print "\n"; }

      i get the following
      Driver: ExampleP Data Source is dbi:ExampleP:dir=. Driver: Proxy Driver: mysql


      However, I am a bit suspect as make test still returns errors (as in previous post) and I cant get a DBD-mysql (which used to work on a differen setup) script to run succesfully.

      I want to try adding the lib path to the environmental variables but am a little uncertain as to how to do this. Could you point me in the right direction with regards to adding to env vars.

      thankyou in advance
        If this is a non-csh shell, the following should work. Lets assume your mysql library is in /usr/mysql/lib :
        ### Check current value (possibly SHLIB_PATH) prompt > echo $LD_LIBRARY_PATH /usr/local/lib:/usr/lib ### Add new path prompt > LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/mysql/lib prompt > export LD_LIBRARY_PATH ### Test it out prompt > ./your_test_program.pl Driver: ExampleP Data Source is dbi:ExampleP:dir=. Driver: Proxy Driver: mysql prompt > ### lather, rince, repeat

        But, using make install was not meant to fix make test, but to ignore the errors. That is why i prefer not to do it that way. You said a program which worked elsewhere fails ... i would suggest writting a short bit of code to login to a mysql server, and do a select * ... if that works, the Driver is loading (which is what failed in make test), and the problem is either the version, or something else all together.