如果在升级之后,您遇到编译客户端程序的问题,例如命令不同步
或者意外的核心转储,程序可能是使用旧的头文件或库文件编译的。在这种情况下,检查日期mysql.h
头文件和libmysqlclient.a
库用于编译,以验证它们来自新的MySQL发行版。如果不是,请使用新的头文件和库重新编译程序。对于根据共享客户端库编译的程序,如果库的主版本号已经更改(例如从libmysqlclient.so.17
来libmysqlclient.so.18
).
主要共享客户端库版本决定兼容性。例如,Forlibmysqlclient.so.18.1.0
,主要版本是18。)新版本的MySQL附带的库是具有相同主号的旧版本的临时替代品。只要主要的库版本是相同的,您可以升级库,旧的应用程序应该继续使用它。
当您尝试执行MySQL程序时,可能会在运行时发生未定义引用错误。如果这些错误指定了以mysql_
或者表明libmysqlclient
库无法找到,这意味着您的系统无法找到共享libmysqlclient.so
图书馆。此问题的解决方案是告诉系统在该库所在的目录中搜索共享库。使用下列方法中的任何一种适合您的系统:
添加目录的路径
libmysqlclient.so
位于LD_LIBRARY_PATH
或LD_LIBRARY
环境变量。在macOS系统下,添加目录路径where
libmysqlclient.dylib
位于DYLD_LIBRARY_PATH
环境变量。复制共享库文件(例如
libmysqlclient.so
)到系统搜索的某个目录,例如/ lib
,执行命令更新共享库信息ldconfig
.一定要复制所有相关文件。共享库可能存在多个名称,使用符号链接提供替代名称。
如果应用程序链接到嵌入式服务器库,则运行时错误消息指示libmysqld
而不是libmysqlclient
库,但是问题的解决方案与刚才描述的相同。