Linux环境连接MariaDB报错libmariadb.so.3共享文件不存在如何解决?
报错原因
这个错误是Python的MariaDB连接器加载时找不到底层依赖的系统动态链接库libmariadb.so.3,常见触发场景有两种:
- 仅通过pip安装了
mariadbPython包,未预先安装系统层面的MariaDB客户端依赖库 - 系统已安装对应库,但动态链接器的缓存未更新,无法定位到库文件的存储路径
解决方法
方案一:安装系统依赖(优先选择)
根据你使用的Linux发行版执行对应命令安装缺失的依赖库:
- Debian/Ubuntu 及衍生版:
sudo apt update sudo apt install libmariadb3 - RHEL/CentOS/Fedora 及衍生版:
sudo dnf install mariadb-connector-c - Arch Linux 及衍生版:
sudo pacman -S mariadb-libs
安装完成后重新运行Python程序即可。
方案二:更新动态链接缓存
如果确认已经安装了上述依赖库仍报错,执行以下操作更新动态链接配置:
- 查找库文件的实际存储路径:
执行后会输出类似sudo find / -name "libmariadb.so.3" 2>/dev/null/usr/local/lib/libmariadb.so.3的结果,取路径的目录部分,比如/usr/local/lib - 将目录写入动态链接配置:
# 替换下面的<库所在目录>为上一步得到的目录 echo "<库所在目录>" | sudo tee /etc/ld.so.conf.d/mariadb.conf - 刷新动态链接缓存:
sudo ldconfig
配置完成后重新运行程序验证。
方案三:虚拟环境单独适配
如果使用虚拟环境且不想修改系统配置,可以重新编译安装Python的mariadb包指定库路径:
# 卸载已安装的mariadb包 pip uninstall -y mariadb # 替换<库所在目录>为之前find命令得到的目录,重新安装 LDFLAGS="-L<库所在目录>" pip install mariadb
内容的提问来源于stack exchange,提问作者nikhil int
相关产品推荐
相关产品推荐

