CentOS 7下Percona MySQL二进制安装失败:libssl.so.1.1缺失
解决CentOS7二进制安装Percona MySQL 5.7.20时libssl.so.1.1缺失问题
嘿,这个问题我之前帮好几个同行解决过——CentOS 7默认搭载的是OpenSSL 1.0.2版本,但你用的Percona MySQL 5.7.20依赖的是OpenSSL 1.1.x的库,这就是报错的核心原因。下面给你几个靠谱的解决办法,按需选择:
方法1:通过Yum安装Percona适配的OpenSSL 1.1包(推荐,不影响系统默认库)
这个方法最省心,不会替换系统默认的OpenSSL版本:
- 先添加Percona官方Yum仓库:
注:yum install percona-release-latest.noarch.rpm percona-release enable ps-57 releasepercona-release-latest.noarch.rpm可从Percona官方渠道获取后上传到服务器。 - 安装OpenSSL 1.1专用包:
yum install openssl11 - 安装完成后,临时指定库路径执行你的初始化命令:
LD_LIBRARY_PATH=/usr/lib64/openssl11/lib64 ./mysql_install_db --basedir=/fs0/mysql/product/5.7.20/bin --defaults-file=/fs0/mysql/instance/dddd/conf/my.cnf --ledir=/fs0/mysql/product/5.7.20/bin/ --user=mysql
方法2:手动编译安装OpenSSL 1.1.x(适合无法用Yum的场景)
如果你的服务器不能访问外部Yum源,可以手动编译安装:
- 获取OpenSSL 1.1.x长期支持版本的源码包(比如1.1.1w),上传到服务器后解压:
tar zxf openssl-1.1.1w.tar.gz cd openssl-1.1.1w - 编译安装(指定独立目录,避免覆盖系统默认库):
./config --prefix=/usr/local/openssl-1.1.1w shared zlib make && make install - 创建软链接让系统能识别新库:
ln -s /usr/local/openssl-1.1.1w/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1 ln -s /usr/local/openssl-1.1.1w/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1 - 更新系统库缓存:
ldconfig - 现在再执行你的MySQL初始化命令就能正常运行了。
方法3:临时指定库路径(快速测试用)
如果只是临时想完成初始化,不想修改系统配置,可以直接在命令前指定LD_LIBRARY_PATH,指向你已有的OpenSSL 1.1库目录:
LD_LIBRARY_PATH=/path/to/your/openssl-1.1/lib ./mysql_install_db --basedir=/fs0/mysql/product/5.7.20/bin --defaults-file=/fs0/mysql/instance/dddd/conf/my.cnf --ledir=/fs0/mysql/product/5.7.20/bin/ --user=mysql
记得把/path/to/your/openssl-1.1/lib替换成你实际存放OpenSSL 1.1库的目录。
注意:CentOS7的系统工具很多依赖默认的OpenSSL 1.0.2,所以不建议直接替换系统默认的OpenSSL库,优先用方法1或3,避免影响其他服务的稳定性。
内容的提问来源于stack exchange,提问作者chinta kiran
相关产品推荐
相关产品推荐

