CentOS7 上 MySQL 安装 libssl.so.10 依赖问题总结

 一、问题根源

CentOS7 默认的 OpenSSL 版本为 1.1.1,而 MySQL 8.0.27 及更早的 el7 版本,强制依赖 OpenSSL 1.0.2 提供的 libssl.so.10/libcrypto.so.10 库文件。版本不兼容导致软链接无效,必须安装对应版本的 OpenSSL 才能解决。


二、完整解决流程(离线环境通用)

1. 准备依赖包(必须按顺序安装)

地址:https://vault.centos.org/7.9.2009/os/x86_64/Packages/

从 CentOS7 官方镜像下载以下 2 个关键包:

  • openssl-libs-1.0.2k-19.el7.x86_64.rpm(核心库文件,提供 libssl.so.10/libcrypto.so.10
  • openssl-1.0.2k-19.el7.x86_64.rpm(主程序包,依赖 libs 安装)

    image

     

2. 安装依赖包(解决版本冲突)

 

# 先装 libs 包(必须第一步执行)
rpm -ivh openssl-libs-1.0.2k-19.el7.x86_64.rpm --nodeps --force

# 再装 openssl 主程序
rpm -ivh openssl-1.0.2k-19.el7.x86_64.rpm --nodeps --force

image

 


3. 验证依赖是否安装成功

 

ls -l /usr/lib64/libssl.so.10 /usr/lib64/libcrypto.so.10

输出包含文件路径,说明依赖已就绪。

4. 安装兼容的 MySQL 版本(推荐 8.0.28+)

选择 MySQL 8.0.28 el7 及以上版本,对 OpenSSL 兼容性更好,步骤如下:

 

# 解压安装包
tar -xvf mysql-8.0.28-1.el7.x86_64.rpm-bundle.tar

# 批量安装所有包(跳过依赖校验)
rpm -ivh mysql-community-*.rpm --nodeps --force

5. 初始化并启动 MySQL

 

# 重置数据目录(避免旧数据冲突)
rm -rf /var/lib/mysql

# 初始化数据库(自动生成临时密码)
mysqld --initialize --user=mysql --datadir=/var/lib/mysql

# 修复权限
chown -R mysql:mysql /var/lib/mysql

# 启动服务并设置开机自启
systemctl start mysqld
systemctl enable mysqld

6. 登录并修改密码

 

# 查看临时密码
grep 'temporary password' /var/log/mysqld.log

# 登录 MySQL
mysql -uroot -p

# 修改 root 密码(必须包含大小写字母、数字、特殊符号)
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的强密码';

三、关键避坑指南

 

坑点错误做法正确做法
依赖顺序错误 先装 openssl 主程序,再装 openssl-libs 必须先装 openssl-libs,再装主程序
软链接无效 将 OpenSSL 1.1 的库文件软链接为 libssl.so.10 软链接无法绕过版本校验,必须安装原生 1.0.2 版本
版本选择错误 安装 MySQL 8.0.27 及更早版本 优先选择 MySQL 8.0.28+,对 OpenSSL 兼容性更强
权限问题 未设置 /var/lib/mysqlmysql 用户权限 初始化后必须执行 chown -R mysql:mysql /var/lib/mysql


微信图片_20260323111653_8_204

 

posted @ 2026-05-14 10:25  程序员食堂  阅读(81)  评论(0)    收藏  举报