If, after an upgrade, you experience problems with compiled
client programs, such as Commands out of sync
or unexpected core dumps, the programs were probably compiled
using old header or library files. In this case, check the date
of the mysql.h file and
libmysqlclient.a library used for
compilation to verify that they are from the new MySQL
distribution. If not, recompile the programs with the new
headers and libraries. Recompilation might also be necessary for
programs compiled against the shared client library if the
library major version number has changed (for example, from
libmysqlclient.so.17 to
libmysqlclient.so.18).
The major client library version determines compatibility. (For
example, for libmysqlclient.so.18.1.0, the
major version is 18.) For this reason, the libraries shipped
with newer versions of MySQL are drop-in replacements for older
versions that have the same major number. As long as the major
library version is the same, you can upgrade the library and old
applications should continue to work with it.
Undefined-reference errors might occur at runtime when you try
to execute a MySQL program. If these errors specify symbols that
start with mysql_ or indicate that the
libmysqlclient library cannot be found, it
means that your system cannot find the shared
libmysqlclient.so library. The solution to
this problem is to tell your system to search for shared
libraries in the directory where that library is located. Use
whichever of the following methods is appropriate for your
system:
Add the path of the directory where
libmysqlclient.so is located to the
LD_LIBRARY_PATH or
LD_LIBRARY environment variable.
On OS X, add the path of the directory where
libmysqlclient.dylib is located to the
DYLD_LIBRARY_PATH environment variable.
Copy the shared-library files (such as
libmysqlclient.so) to some directory
that is searched by your system, such as
/lib, and update the shared library
information by executing ldconfig. Be
sure to copy all related files. A shared library might exist
under several names, using symlinks to provide the alternate
names.
If the application is linked to the embedded server library,
runtime error messages will indicate the
libmysqld rather than
libmysqlclient library, but the solution to
the problem is the same as just described.