MySQL 8.4 发行说明
如果 Perl 报告找不到 ../mysql/mysql.so
模块,问题可能是 Perl 无法找到 libmysqlclient.so
共享库。您可以通过以下方法之一解决此问题
请注意,如果链接器找不到其他库,您可能也需要修改 -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 客户端时用于 mysql.so
的 make 的输出)。-L
选项应该指定系统上 libgcc.a
所在目录的路径名。
此问题的另一个原因可能是 Perl 和 MySQL 并非都使用 gcc 编译。在这种情况下,您可以通过使用 gcc 编译两者来解决不匹配。