3.5运行C API客户端程序

如果在升级之后,您遇到编译客户端程序的问题,例如命令不同步或者意外的核心转储,程序可能是使用旧的头文件或库文件编译的。在这种情况下,检查日期mysql.h头文件和libmysqlclient.a库用于编译,以验证它们来自新的MySQL发行版。如果不是,请使用新的头文件和库重新编译程序。对于根据共享客户端库编译的程序,如果库的主版本号已经更改(例如从libmysqlclient.so.17libmysqlclient.so.18).

主要共享客户端库版本决定兼容性。例如,Forlibmysqlclient.so.18.1.0,主要版本是18。)新版本的MySQL附带的库是具有相同主号的旧版本的临时替代品。只要主要的库版本是相同的,您可以升级库,旧的应用程序应该继续使用它。

当您尝试执行MySQL程序时,可能会在运行时发生未定义引用错误。如果这些错误指定了以mysql_或者表明libmysqlclient库无法找到,这意味着您的系统无法找到共享libmysqlclient.so图书馆。此问题的解决方案是告诉系统在该库所在的目录中搜索共享库。使用下列方法中的任何一种适合您的系统:

  • 添加目录的路径libmysqlclient.so位于LD_LIBRARY_PATHLD_LIBRARY环境变量。

  • 在macOS系统下,添加目录路径wherelibmysqlclient.dylib位于DYLD_LIBRARY_PATH环境变量。

  • 复制共享库文件(例如libmysqlclient.so)到系统搜索的某个目录,例如/ lib,执行命令更新共享库信息ldconfig.一定要复制所有相关文件。共享库可能存在多个名称,使用符号链接提供替代名称。

如果应用程序链接到嵌入式服务器库,则运行时错误消息指示libmysqld而不是libmysqlclient库,但是问题的解决方案与刚才描述的相同。