3.5运行C API客户端程序

如果在升级后,您会遇到编译的客户程序的问题,例如命令异步或意外的核心转储,这些程序可能使用旧标头或库文件编译。在这种情况下,检查日期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位于ld_library_path.或者ld_library.环境变量。

  • 在MacOS上,添加目录的路径libmysqlclient.dylib.位于dyd_library_path.环境变量。

  • 复制共享库文件(例如libmysqlclient.so)到由系统搜索的某些目录,例如/ lib,并通过执行来更新共享库信息ldconfig.。务必复制所有相关文件。共享库可能在几个名称下存在,使用符号链接来提供备用名称。