如果在升级后,您遇到了编译后的客户端程序问题,例如 命令不同步
或意外的内核转储,那么这些程序可能是使用旧的标头或库文件编译的。在这种情况下,请检查用于编译的 mysql.h
标头文件和 libmysqlclient.a
库的日期,以验证它们是否来自新的 MySQL 发行版。如果不是,请使用新的标头和库重新编译这些程序。如果共享客户端库的主版本号已更改(例如,从 libmysqlclient.so.17
更改为 libmysqlclient.so.18
),则可能还需要重新编译针对共享客户端库编译的程序。
共享客户端库的主版本决定了兼容性。(例如,对于 libmysqlclient.so.18.1.0
,主版本为 18。)与较新版本的 MySQL 一起提供的库是较旧版本的直接替代品,这些库具有相同的主版本号。只要主库版本相同,您就可以升级库,旧应用程序应该继续使用它工作。
当您尝试执行 MySQL 程序时,可能会在运行时出现未定义的引用错误。如果这些错误指定以 mysql_
开头的符号,或表明无法找到 libmysqlclient
库,则意味着您的系统无法找到共享 libmysqlclient.so
库。此问题的解决方案是告诉您的系统在 libmysqlclient.so
库所在的目录中搜索共享库。请根据您的系统使用以下方法中的任何一种
将
libmysqlclient.so
所在目录的路径添加到LD_LIBRARY_PATH
或LD_LIBRARY
环境变量中。在 macOS 上,将
libmysqlclient.dylib
所在目录的路径添加到DYLD_LIBRARY_PATH
环境变量中。将共享库文件(如
libmysqlclient.so
)复制到系统搜索的某些目录,例如/lib
,并通过执行ldconfig
更新共享库信息。确保复制所有相关文件。共享库可能在多个名称下存在,使用符号链接提供备用名称。