安装 MySQL 8.0 所需的运行库(依赖库)因操作系统不同而有所差异。以下是常见操作系统中安装 MySQL 8.0 所需的主要运行库和依赖项:
一、Linux 系统(以 CentOS/RHEL 和 Ubuntu/Debian 为例)
1. CentOS / RHEL / Rocky Linux / AlmaLinux
MySQL 8.0 通常依赖以下运行库:
libaio:异步 I/O 库,MySQL 启动所必需。numactl:用于 NUMA 支持,提升性能(推荐安装)。openssl或openssl-libs:用于加密连接(TLS/SSL)。ncurses相关库(如libncurses):用于命令行客户端显示。zlib:压缩支持。libtirpc:远程过程调用支持(某些版本需要)。
安装命令(YUM/DNF):
sudo yum install -y libaio numactl-libs openssl-libs ncurses-libs zlib
或(在较新系统上使用 dnf):
sudo dnf install -y libaio numactl-libs openssl-libs ncurses zlib
⚠️ 注意:如果你使用官方 MySQL YUM 仓库安装(推荐),大部分依赖会自动解决。
2. Ubuntu / Debian
依赖库包括:
libaio1:异步 I/O 支持。libnuma1:NUMA 支持。openssl或libssl:加密支持。zlib1g:压缩。libncurses5或libncurses6:终端界面支持。
安装命令(APT):
sudo apt update
sudo apt install -y libaio1 libnuma1 libssl3 zlib1g libncurses5
注意:Ubuntu 22.04+ 使用
libssl3,而旧版本使用libssl1.1。
二、Windows 系统
MySQL 8.0 在 Windows 上通常依赖以下 Visual C++ 运行库:
- Microsoft Visual C++ Redistributable for Visual Studio 2019(或 2015–2022 合并包)
- 包含运行 MySQL 所需的 C/C++ 运行时库(如
MSVCR120.dll,VCRUNTIME140.dll等)
- 包含运行 MySQL 所需的 C/C++ 运行时库(如
下载地址:
https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist
✅ 建议安装 x64 版本的 Visual C++ Redistributable(即使你使用 32 位 MySQL,也推荐安装 x64 以防其他程序需要)。
三、通用说明
| 依赖库 | 用途说明 |
|---|---|
libaio |
MySQL InnoDB 存储引擎需要异步 I/O 支持 |
numactl |
在多 CPU 插槽系统中优化内存分配,提升性能 |
openssl |
支持 SSL/TLS 加密连接 |
zlib |
支持压缩协议(如 mysql client 与 server 之间的压缩) |
ncurses |
命令行客户端(mysql)的终端界面支持 |
四、如何确认依赖是否满足?
Linux 上使用 ldd 检查:
ldd /usr/bin/mysqld
查看是否有“not found”的库。
或检查 MySQL 安装包依赖(RPM/DEB):
rpm -qpR MySQL-server-8.0.x86_64.rpm # 查看 RPM 包依赖
dpkg -I mysql-server_8.0.deb | grep Depends # 查看 DEB 依赖
五、建议安装方式(避免手动处理依赖)
-
使用官方仓库安装(推荐)
- MySQL Yum Repository
- MySQL APT Repository
- 包管理器会自动解决依赖。
-
使用 Docker 部署
docker run -d --name mysql8 -e MYSQL_ROOT_PASSWORD=yourpass mysql:8.0完全隔离依赖问题。
总结
| 系统 | 关键运行库 |
|---|---|
| Linux | libaio, numactl, openssl, zlib, ncurses |
| Windows | Visual C++ Redistributable (2015–2022) |
✅ 最佳实践:使用官方包管理器(YUM/APT)或 Docker 安装,避免手动处理依赖。
如果你提供具体的操作系统版本(如 CentOS 7、Ubuntu 20.04、Windows 10 等),我可以给出更精确的依赖列表。
ECLOUD博客