FYI, I found this statement in the doc, at the end of the C API main page:
If, after an upgrade, you experience problems with compiled client programs, such as
Commands out of sync or unexpected core dumps, you probably have
used old header or library files when compiling your programs. In this case, check the
date for your mysql.h file and libmysqlclient.a library to
verify that they are from the new MySQL distribution. If not, recompile your 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.15 to libmysqlclient.so.16.
This sounds like guessing/hoping that the a client program compiled/linked
with older headers/libmysqlclient can eventually work with a more recent
There should be a clear rule for that.
A simple rule could be that it's mandatory to recompile when upgrading to
a new production release (5.5 to 5.6), even if the client libs are still
Further, I would expect to see such note in "Building Client Programs":