Skip to content

解决DBAPI在低版本OpenSSL环境下的兼容性问题

问题背景

DBAPI要求Linux系统需要安装OpenSSL 3.0以上版本,但是某些情况下,如果您的操作系统无法安装OpenSSL 3.0以上版本,也可以直接使用系统自带的低版本openssl(如1.0.2k或1.1.1k),但是直接启动会报错。

常见错误信息:

libssl.so.1.0.0: 无法打开共享对象文件: 没有那个文件或目录
libcrypto.so.1.0.0: 无法打开共享对象文件: 没有那个文件或目录

解决方案

通过创建软链接的方式,将DBAPI所需的库文件指向系统实际存在的低版本库文件。

步骤1:检查系统库文件

首先确认系统中存在的OpenSSL库文件:

bash
ls -la /usr/lib64/libssl*
ls -la /usr/lib64/libcrypto*

通常在CentOS 7系统中,您会看到类似以下输出:

  • /usr/lib64/libssl.so.1.0.2k
  • /usr/lib64/libcrypto.so.1.0.2k

步骤2:创建软链接

进入DBAPI安装目录的bin子目录,执行以下命令创建软链接:

bash
# 创建libssl软链接
ln -s /usr/lib64/libssl.so.1.0.2k libssl.so.1.0.0

# 创建libcrypto软链接
ln -s /usr/lib64/libcrypto.so.1.0.2k libcrypto.so.1.0.0

步骤3:验证解决

完成上述操作后,重新启动DBAPI服务,应不再出现库文件缺失的错误提示。

openssl 1.1版本库文件缺失

如果启动DBAPI服务时,出现以下错误提示

libssl.so.1.1: 无法打开共享对象文件: 没有那个文件或目录
libcrypto.so.1.1: 无法打开共享对象文件: 没有那个文件或目录

也是同样的解决方案,只不过注意找到系统中存在的openssl 1.1版本库文件,并创建软链接

注意事项

  1. 软链接必须在DBAPI安装目录的bin目录下创建
  2. 链接的目标文件路径需根据实际系统中的库文件名称调整