文档首页
MySQL 9.0 参考手册
相关文档 下载本手册
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
手册页 (TGZ) - 258.2Kb
手册页 (Zip) - 365.3Kb
信息 (Gzip) - 4.0Mb
信息 (Zip) - 4.0Mb


MySQL 9.0 参考手册  /  ...  /  使用 Perl DBI/DBD 接口的问题

2.10.3 使用 Perl DBI/DBD 接口的问题

如果 Perl 报告说它找不到 ../mysql/mysql.so 模块,则问题可能是 Perl 无法找到 libmysqlclient.so 共享库。您应该能够通过以下方法之一解决此问题:

  • libmysqlclient.so 复制到其他共享库所在的目录(可能是 /usr/lib/lib)。

  • 修改用于编译 DBD::mysql-L 选项,以反映 libmysqlclient.so 的实际位置。

  • 在 Linux 上,您可以将 libmysqlclient.so 所在目录的路径名添加到 /etc/ld.so.conf 文件中。

  • libmysqlclient.so 所在目录的路径名添加到 LD_RUN_PATH 环境变量中。某些系统使用 LD_LIBRARY_PATH 代替。

请注意,如果链接器无法找到其他库,您可能还需要修改 -L 选项。例如,如果链接器因为 libc 位于 /lib 中而链接命令指定了 -L/usr/lib,则无法找到它,请将 -L 选项更改为 -L/lib 或将 -L/lib 添加到现有链接命令中。

如果从 DBD::mysql 中收到以下错误,则可能是因为您正在使用 gcc(或使用了使用 gcc 编译的旧二进制文件):

/usr/bin/perl: can't resolve symbol '__moddi3'
/usr/bin/perl: can't resolve symbol '__divdi3'

在构建 mysql.so 库时,将 -L/usr/lib/gcc-lib/... -lgcc 添加到链接命令中(在编译 Perl 客户端时,检查 make 输出 mysql.so)。-L 选项应指定系统上 libgcc.a 所在目录的路径名。

此问题的另一个原因可能是 Perl 和 MySQL 并非都使用 gcc 编译。在这种情况下,您可以通过使用 gcc 编译两者来解决不匹配问题。