如果在升级后,您遇到了编译的客户端程序的问题,例如 命令不同步
或意外的内核转储,则这些程序可能是使用旧的标头或库文件编译的。在这种情况下,请检查用于编译的 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
更新共享库信息。请确保复制所有相关文件。共享库可能以多个名称存在,使用符号链接提供备用名称。