【Linux安装 OpenSSL 1.0.2 兼容包】
1. 安装 OpenSSL 1.0.2 兼容包(推荐)
大多数 Linux 发行版提供 OpenSSL 1.0.x 的兼容包,可直接安装:
CentOS/RHEL 7:
sudo yum install openssl10
CentOS/RHEL 8+:
sudo dnf install compat-openssl10
Ubuntu 18.04/Debian 9+:
# 从Ubuntu官方仓库安装
sudo apt update
sudo apt install libssl1.0.0# 或从.deb包安装(适用于没有官方源的情况)
wget http://security.ubuntu.com/ubuntu/pool/main/o/openssl1.0/libssl1.0.0_1.0.2n-1ubuntu5.10_amd64.deb
sudo dpkg -i libssl1.0.0_1.0.2n-1ubuntu5.10_amd64.deb
2. 手动编译安装 OpenSSL 1.0.2
如果系统没有兼容包,可从源码编译 OpenSSL 1.0.2:
# 下载源码
wget https://www.openssl.org/source/openssl-1.0.2u.tar.gz
tar -zxvf openssl-1.0.2u.tar.gz
cd openssl-1.0.2u# 编译安装到自定义目录
./config --prefix=/opt/openssl-1.0.2 shared zlib
make -j$(nproc)
sudo make install# 创建软链接
sudo ln -s /opt/openssl-1.0.2/lib/libssl.so.1.0.0 /usr/lib64/libssl.so.10
sudo ln -s /opt/openssl-1.0.2/lib/libcrypto.so.1.0.0 /usr/lib64/libcrypto.so.10# 更新动态链接库配置
echo "/opt/openssl-1.0.2/lib" | sudo tee /etc/ld.so.conf.d/openssl-1.0.2.conf
sudo ldconfig
3. 使用 LD_LIBRARY_PATH 临时指定库路径(测试用)
在启动 MySQL 前,临时指定 OpenSSL 1.0.2 库的路径:
# 假设OpenSSL 1.0.2安装在/opt/openssl-1.0.2
export LD_LIBRARY_PATH=/opt/openssl-1.0.2/lib:$LD_LIBRARY_PATH# 启动MySQL(根据你的系统)
sudo systemctl start mysqld
# 或
sudo service mysql start
4. 升级 MySQL 到支持 OpenSSL 1.1 的版本
如果上述方法都不可行,考虑升级 MySQL 到更高版本(如 MySQL 8.0),它原生支持 OpenSSL 1.1:
# 以CentOS为例
sudo yum remove mysql-server # 卸载旧版本
sudo yum install mysql-server # 安装最新版本# 初始化并启动
sudo mysqld --initialize
sudo systemctl start mysqld
验证修复结果
再次检查依赖:
ldd /usr/sbin/mysqld | grep "not found"
如果没有输出,则问题解决。如果仍有其他依赖缺失,重复上述步骤处理即可。
注意事项
- 安全风险:OpenSSL 1.0.2 已停止维护,生产环境建议优先升级 MySQL 而非使用旧版 OpenSSL。
- 多版本共存:通过自定义路径安装 OpenSSL 1.0.2 不会影响系统现有的 OpenSSL 1.1,可避免依赖冲突。
- 动态链接配置:修改
LD_LIBRARY_PATH
或/etc/ld.so.conf.d/
会影响系统全局,确保路径正确,避免引入新问题。