Documentation Home
MySQL 8.0 参考手册  / 第 2 章安装和升级 MySQL  / 2.13 Perl 安装注意事项  /  2.13.3 使用 Perl DBI/DBD 接口的问题

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

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

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

  • 修改-L用于编译的选项 DBD::mysql以反映libmysqlclient.so.

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

  • 将所在目录的路径名添加 libmysqlclient.soLD_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'

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

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