官方mysql80-community-release RPM包仅生成Yum源配置,不包含MySQL二进制文件;yum install时需从互联网下载server、client、libs等数十个依赖RPM,局域网无外网即失败;私有仓库须完整托管所有RPM及createrepo生成的repodata元数据,并禁用默认远程源。

为什么不能直接用官方Yum仓库做局域网分发
官方 mysql80-community-release RPM 包只是配置文件生成器,它本身不包含 MySQL 二进制包;真正安装时 yum install mysql-community-server 会从互联网拉取几十个 RPM(如 mysql-community-server、mysql-community-client、mysql-community-libs 等),一旦客户端没外网就失败。局域网私有仓库必须把所有依赖 RPM 和元数据(repodata)一并托管。
用 FTP 搭建最简可用的私有 Yum 仓库
不需要 HTTP 服务或复杂工具,FTP 足够稳定且兼容所有旧版 CentOS/RHEL 客户端。
解析 MySQL 8.0 的 DDL 脚本,并将表结构导出为 Excel 格式。适用于用户需将 MySQL 的 `CREATE TABLE` 语句转换为结构化的 Excel 文件场景,导出内容包含字段名、数据类型、长度及精度等信息。支持多张表的批量处理,每张表对应 Excel 中的一个独立工作表。适用于数据库文档编写、数据字典生成及模式分析等任务。
- 在服务端(如
FtpServer)安装并启用vsftpd:yum install -y vsftpd,systemctl start vsftpd && systemctl enable vsftpd - 下载 MySQL 8.0 所有 RPM 包:先装官方仓库包(如
mysql80-community-release-el7-6.noarch.rpm),再执行yum install --downloadonly --downloaddir=/var/ftp/pub/mysql80 mysql-community-server—— 这会把server及其全部依赖(client、libs、common等)下到目录 - 生成仓库元数据:
createrepo /var/ftp/pub/mysql80(需先yum install -y createrepo) - 确认路径可访问:
curl ftp://your-ftp-server-ip/pub/mysql80/repodata/repomd.xml应返回 XML 内容
客户端如何正确指向私有仓库
不能只改 baseurl,还必须禁用默认的远程源,否则 yum 会混合拉取导致冲突或降级。
- 在客户端新建
/etc/yum.repos.d/mysql-local.repo,内容为:
[mysql80-local] name=MySQL 8.0 Local Repo baseurl=ftp://your-ftp-server-ip/pub/mysql80 enabled=1 gpgcheck=0 skip_if_unavailable=1
yum-config-manager --disable mysql*-community*(若未安装该命令,先 yum install -y yum-utils)yum repolist enabled | grep mysql 输出应只有一行,且 URL 是你的 FTP 地址常见失败点:SELinux、防火墙、路径权限
FTP 默认被 SELinux 限制读取非标准目录,/var/ftp/pub 是安全路径;但若你改用 /opt/mysql-repo,即使 chown -R ftp:ftp 也无效。
- SELinux 必须放行 FTP 对目录的读取:
setsebool -P ftpd_read_ephemeral on,并确保目录类型为public_content_t:semanage fcontext -a -t public_content_t "/var/ftp/pub/mysql80(/.*)?" && restorecon -Rv /var/ftp/pub/mysql80 - 防火墙要放开 21(FTP 控制)和 20(FTP 数据)端口,或直接关掉:
systemctl stop firewalld -
vsftpd配置中必须设anon_root=/var/ftp,且pub目录权限为755、RPM 文件为644,否则客户端yum makecache会报Cannot retrieve repository metadata
createrepo 后没更新客户端缓存,或者忘了 yum-config-manager --disable。只要 FTP 路径能 curl 通、repomd.xml 存在、本地 yum repolist 显示唯一源,后续 yum install mysql-community-server 就不会连外网。

















