2.13.3 Problems Using the Perl DBI/DBD Interface
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.soto the directory where your other shared libraries are located (probably
-Loptions used to compile
DBD::mysqlto reflect the actual location of
On Linux, you can add the path name of the directory where
libmysqlclient.sois located to the
Note that you may also need to modify the
-L options if there are other libraries that the linker fails to find. For example, if the linker cannot find
libc because it is in
/lib and the link command specifies
-L/usr/lib, change the
-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 gcc):
/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). The
-L option should specify the path name of the directory where
libgcc.a is located on your system.
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.