centos perl: symbol lookup error: /usr/local/lib64/perl5/auto/DBD/mysql/mysql.so: undefined symbol: ...

本文介绍了在使用Perl数据库监控工具lepus时遇到的错误:符号查找错误/mysql_init未定义,并详细解释了解决方案,包括如何处理系统中存在的多个Perl版本导致的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前在安装天兔数据库监控工具lepus的时候,运行时一直报perl: symbol lookup error: /usr/local/lib64/perl5/auto/DBD/mysql/mysql.so: undefined symbol: mysql_init。

自己检查了下perl下是有mysql模块的,而且mysql.so文件也存在,mysql_init在mysql.so也存在,后来才发现自己安装了两个perl。

 

1 问题原因:系统中存在多个perl[/usr/local/lib64/perl5,/usr/lib64/perl5],系统调用时根据PATH默认先选用/usr/local/lib64/perl5,而该perl没有相关mysql module或module不完整

1 解决方法:mv /usr/local/lib64/perl5 /usr/local/lib64/perl5_drop

转载于:https://www.cnblogs.com/dzqk/p/8236627.html

### 解决 `wget` 运行时出现的 `symbol lookup error` 当遇到类似于 `wget: symbol lookup error: /usr/lib64/libssh2.so.1: undefined symbol: EVP_aes_256_ctr` 的错误时,这通常意味着某些共享库文件存在版本不匹配或缺失的情况。对于特定于 `libproxy` 和 `libpxbackend-1.0.so` 中未定义符号的问题,解决方案可以遵循以下方法。 #### 方法一:更新或重新安装受影响的软件包 如果问题是由于旧版或损坏的库引起,则可以通过更新或重装相关联的软件包来解决问题: ```bash sudo yum update wget libssh2 openssl # 对于基于RPM的系统如CentOS/RHEL/Fedora # 或者 sudo apt-get install --reinstall wget # 对于Debian/Ubuntu类Linux发行版 ``` #### 方法二:手动修复依赖关系 有时可能需要更具体地处理某个特定库文件。例如,在上述案例中提到的是 OpenSSL 库中的 AES 加密算法函数丢失。此时可尝试单独升级该库及其关联组件: ```bash sudo yum reinstall openssl-devel # 如果是在Red Hat系操作系统上 # 或者考虑清理缓存并强制刷新元数据后再试一次: sudo yum clean all && sudo yum makecache fast ``` #### 方法三:环境变量调整 临时性的解决办法也可以通过设置 LD_LIBRARY_PATH 来指向正确的动态链接器路径实现。这种方法适用于测试目的或是确认问题根源之前: ```bash export LD_LIBRARY_PATH=/path/to/correct/libs:$LD_LIBRARY_PATH which wget # 确认命令位置 ldd $(which wget) # 查看实际加载了哪些共享对象以及它们的状态 ``` 以上操作可以帮助定位到确切缺少哪个版本号或者ABI兼容性有问题的具体库文件[^1]。 #### 方法四:检查多版本冲突 如果有多个不同版本的相同名称库共存于系统内(比如来自不同的源),可能会导致此类错误发生。这时应该仔细审查 `/etc/ld.so.conf.d/*` 下配置项,并执行 `ldconfig` 命令使更改生效;另外还可以利用工具如 `strace` 跟踪程序启动过程以进一步诊断潜在的竞争条件[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值