If Perl reports that it cannot find the
../mysql/mysql.so module, the problem is
probably that Perl cannot locate the
libmysqlclient.so shared library. You should
be able to fix this problem by one of the following methods:
libmysqlclient.so to the directory
where your other shared libraries are located (probably
-L options used to compile
DBD::mysql to reflect the actual location
On Linux, you can add the path name of the directory where
libmysqlclient.so is located to the
Note that you may also need to modify the
options if there are other libraries that the linker fails to
find. For example, if the linker cannot find
libc because it is in
and the link command specifies
-L option to
-L/lib or add
-L/lib to the existing link command.
If you get the following errors from
DBD::mysql, you are probably using
gcc (or using an old binary compiled with
/usr/bin/perl: can't resolve symbol '__moddi3' /usr/bin/perl: can't resolve symbol '__divdi3'
-L/usr/lib/gcc-lib/... -lgcc to the link
command when the
mysql.so library gets built
(check the output from make for
mysql.so when you compile the Perl client).
-L option should specify the path name of the
libgcc.a is located on your
Another cause of this problem may be that Perl and MySQL are not both compiled with gcc. In this case, you can solve the mismatch by compiling both with gcc.
You may see the following error from
when you run the tests:
t/00base............install_driver(mysql) failed: Can't load '../blib/arch/auto/DBD/mysql/mysql.so' for module DBD::mysql: ../blib/arch/auto/DBD/mysql/mysql.so: undefined symbol: uncompress at /usr/lib/perl5/5.00503/i586-linux/DynaLoader.pm line 169.
This means that you need to include the
compression library on the link line. That can be done by changing
the following line in the file
$sysliblist .= " -lm";
Change that line to:
$sysliblist .= " -lm -lz";
After this, you must run make realclean and then proceed with the installation from the beginning.