docker安装mysql的离线依赖包

本文详细介绍在离线环境下,如何从获取依赖包到编译安装MySQL的过程,包括选择适合的版本,使用cmake进行配置,以及解决GCC编译环境冲突的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在上一篇博客有介绍到  《docker容器内安装mysql 》是容器联网状态,且安装了apt-get工具,本文介绍离线状态下安装mysql. 

一、依赖包获取

1.1 mysql 

下载地址   https://www.mysql.com/downloads/

选择需要的版本, 这里选择的5.6.33,通用版,linux下64位

1.2 cmake 

下载地址   https://download.youkuaiyun.com/download/a12345676abc/10839511

包内内容

gcc-envi

2、编译

将 cmake 依赖包,和 mysql源码放在同一目录下, 启动容器,挂载到容器内容目录。

 安装cmake 环境

先查看容器内容是否存储 GCC编译环境

gcc --version
g++ --version

       如果不存在,则先安装GCC编译环境,这里安装的编译环境需要与容器内系统环境匹配,否则会存在很多文件冲突。如果存在冲突,请自行解决对应的GCC编译安装包。

  GCC编译环境安装完成后,接下来安装流程和  《docker容器内安装mysql 》一致,创建用户,设置参数,初始化数据库,设置开机启动项。

 

<think>好的,用户现在需要了解如何安装MySQL离线依赖包。首先,我需要分析用户可能的场景和需求。安装离线依赖包通常意味着用户处于没有互联网连接的环境,或者他们需要在内网服务器上部署MySQL,而这些服务器无法直接访问外部仓库。这种情况下,用户需要手动下载所有依赖包并在目标机器上进行安装。 接下来,我需要考虑用户可能使用的操作系统。常见的MySQL部署环境包括CentOS/RHEL、Ubuntu/Debian等,所以应该分别针对这两种系统给出解决方案。用户可能不太清楚不同系统之间的依赖管理差异,因此需要明确区分不同系统的步骤。 然后,我需要确定MySQL安装方式。用户可能通过官方仓库、APT/YUM仓库,或者使用离线包(如RPM或DEB文件)来安装离线安装的关键在于处理依赖关系,特别是当这些依赖包也需要离线安装时。可能需要使用工具如yumdownloader或apt-get download来下载所有依赖包,然后传输到目标机器上使用本地仓库或直接安装。 用户可能遇到的常见问题包括依赖包版本冲突、缺少某些依赖项、安装顺序错误等。需要提醒用户注意依赖的顺序,以及如何创建本地仓库来解决依赖问题。此外,对于Ubuntu系统,使用dpkg -i安装多个DEB包时可能需要处理依赖顺序,这时候可能需要使用工具如gdebi或dpkg的依赖解决选项。 还需要考虑安全性和稳定性,建议用户验证下载的依赖包来源,确保其来自官方或可信的源。同时,在无法联网的情况下,如何正确设置本地仓库的配置文件,例如CentOS的.repo文件或Ubuntu的sources.list条目,以便包管理器能够正确识别本地路径。 另外,用户可能需要知道如何批量安装所有下载的依赖包,例如在CentOS中使用yum localinstall或rpm -ivh,而在Ubuntu中使用dpkg -i配合通配符。如果依赖包之间有循环依赖或复杂的关系,可能需要按特定顺序安装,或者使用工具如apt-rdepends来预先分析依赖关系。 最后,总结步骤,提供清晰的命令示例,并给出注意事项,如备份现有数据库、检查系统架构兼容性、处理安装后的配置等。可能还需要提到使用容器化方案(如Docker)作为替代方法,但用户明确要求离线依赖包安装,所以这可能作为附加建议提及。 整个思考过程中,需要确保步骤准确,命令正确,同时用用户容易理解的语言表达,避免技术术语过多,但也要足够详细,让用户能够一步步操作。另外,需要预见到用户可能遇到的问题,并提供解决方案,比如如何处理依赖缺失的情况,如何验证安装是否成功等。</think>### MySQL 离线依赖包安装全攻略 --- #### 一、环境准备阶段 **1. 操作系统判断** ```bash # CentOS/RHEL 系 cat /etc/redhat-release # Ubuntu/Debian 系 lsb_release -a ``` **2. 架构检测(重要!)** ```bash # 确认系统架构 uname -m # 输出示例:x86_64(64位)或 i686(32位) ``` --- #### 二、CentOS/RHEL 系统方案 **1. 在线环境准备(需临时联网)** ```bash # 安装下载工具 sudo yum install -y yum-utils createrepo # 创建缓存目录 mkdir -p /opt/mysql_deps ``` **2. 下载核心依赖包** ```bash # 查看MySQL官方仓库的依赖关系 repoquery --requires mysql-server # 批量下载所有依赖(示例版本) yumdownloader --resolve \ --destdir=/opt/mysql_deps \ mysql-server-8.0.36-1.el7.x86_64.rpm \ mysql-client-8.0.36-1.el7.x86_64.rpm ``` **3. 制作本地仓库** ```bash cd /opt/mysql_deps createrepo . ``` **4. 离线环境配置** ```bash # 创建本地repo文件 cat << EOF > /etc/yum.repos.d/mysql-local.repo [mysql-local] name=MySQL Local Repository baseurl=file:///opt/mysql_deps enabled=1 gpgcheck=0 EOF ``` **5. 离线安装命令** ```bash sudo yum clean all sudo yum install -y --disablerepo=* --enablerepo=mysql-local mysql-server ``` --- #### 三、Ubuntu/Debian 系统方案 **1. 在线环境准备** ```bash sudo apt-get install -y dpkg-dev apt-utils mkdir -p /var/cache/apt/archives ``` **2. 下载完整依赖树** ```bash # 清理旧缓存 sudo apt-get clean # 模拟安装获取依赖列表 sudo apt-get install --dry-run mysql-server # 实际下载(需根据上一步输出调整) sudo apt-get download \ mysql-server-8.0 \ mysql-client-8.0 \ libaio1 \ libmecab2 \ libnuma1 ``` **3. 构建本地仓库** ```bash # 创建Packages索引 dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz ``` **4. 离线安装流程** ```bash # 转移所有.deb文件到目标机 sudo dpkg -i *.deb # 处理未满足的依赖 sudo apt-get -f install ``` --- #### 四、通用验证方法 **1. 服务状态检查** ```bash systemctl status mysqld # CentOS systemctl status mysql # Ubuntu ``` **2. 版本确认** ```bash mysql --version # 预期输出示例:mysql Ver 8.0.36 for Linux on x86_64 (MySQL Community Server) ``` **3. 安全初始化** ```bash # 获取临时密码 sudo grep 'temporary password' /var/log/mysqld.log # 执行安全配置 sudo mysql_secure_installation ``` --- #### 五、常见问题解决方案 **问题1:依赖版本冲突** ```bash # 查看已安装版本 rpm -qa | grep mysql # CentOS dpkg -l | grep mysql # Ubuntu # 强制降级方案(慎用!) sudo rpm -Uvh --oldpackage *.rpm # CentOS sudo dpkg -i --force-downgrade *.deb # Ubuntu ``` **问题2:缺少libaio依赖** ```bash # 手动安装libaio(需提前下载) sudo rpm -ivh libaio-0.3.109-13.el7.x86_64.rpm # CentOS sudo dpkg -i libaio1_0.3.110-5_amd64.deb # Ubuntu ``` **问题3:系统服务启动失败** ```bash # 查看详细日志 journalctl -xe -u mysqld # SELinux问题处理(CentOS) sudo setenforce 0 # 临时关闭 sudo restorecon -Rv /var/lib/mysql ``` --- #### 六、高级技巧:制作全量离线包 **1. 依赖树分析工具** ```bash # CentOS repoquery --tree-requires mysql-server # Ubuntu apt-cache depends mysql-server ``` **2. 全量打包方案** ```bash # CentOS完整依赖下载 repotrack --download_path=/opt/mysql_full_deps \ mysql-server \ mysql-client \ libaio # Ubuntu完整依赖 apt-get download $(apt-cache depends --recurse --no-recommends mysql-server | grep "^\w") ``` --- #### 七、安全注意事项 1. **校验文件完整性** ```bash # 校验SHA256 sha256sum -c mysql-server-8.0.36-1.el7.x86_64.rpm.sha256 # 验证GPG签名 rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 rpm -K mysql-server-*.rpm ``` 2. **最小权限原则** ```bash # 创建专用用户 sudo groupadd mysqluser sudo useradd -r -g mysqluser -s /bin/false mysqluser sudo chown -R mysqluser:mysqluser /var/lib/mysql ``` --- **推荐工作流**: 1. 在测试环境完成全量依赖下载 2. 使用校验和验证文件完整性 3. 通过隔离网络进行安装测试 4. 正式部署前进行压力测试 > 💡 **专家建议**: > 对于生产环境,推荐使用官方编译的二进制包(Generic Linux Package)进行离线安装,可减少系统依赖: > ```bash > tar -xvf mysql-8.0.36-linux-glibc2.28-x86_64.tar.xz > ./bin/mysqld --initialize --user=mysql > ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值