首页 > 数据库 >封装适用于CentOS7的MySQL离线包

封装适用于CentOS7的MySQL离线包

时间:2022-11-22 14:45:58浏览次数:65  
标签:libmysqlclient -- 离线 CentOS7 yum && MySQL lib64 rpm

1 构建一个centos7.6.1810的docker镜像,用于下载MySQL+xtrabackup所需安装包

7.6.1810的docker镜像,低版本最小安装,会尽可能把所需的包拉齐。

Dockerfile文件如下

FROM centos:7.6.1810
 
CMD yum install -y https://repo.percona.com/yum/percona-release-latest.noarch.rpm https://repo.mysql.com//mysql80-community-release-el7-7.noarch.rpm epel-release && \
rm -rf /yum/mysql8.0 && mkdir -p /yum/mysql8.0 && \
yum --downloadonly --downloaddir=/yum/mysql8.0 install -y mysql-community-server percona-xtrabackup-80 zip unzip telnet lrzsz iotop ftp python-pip && \
yum-config-manager --disable mysql80-community && yum-config-manager --enable mysql57-community && \
rm -rf /yum/mysql5.7 && mkdir -p /yum/mysql5.7 && \
yum --downloadonly --downloaddir=/yum/mysql5.7 install -y mysql-community-server percona-xtrabackup-24 zip unzip telnet lrzsz iotop ftp python-pip

构建镜像:

docker build -t mysql_xtrabackup_download .

2 运行镜像自动下载MySQL5.7 / 8.0 + 对应版本的xtrabackup安装包

docker run --rm \
  -v /etc/localtime:/etc/localtime \
  -v ${PWD}/yum:/yum \
  mysql_xtrabackup_download

docker容器跑完会自动销毁,并在当前目录的yum文件夹下生成mysql5.7 / mysql8.0两个安装包

传输到无网络的centos7上,可以使用yum localinstall *.rpm进行安装

3 解决冲突

下载的rpm可以用于离线安装,但是安装时会报错

新版本的MySQL已经不再提供libmysqlclient.so.18.1.0,但是xtrabackup需要这个文件,所以就有一个Percona-Server-shared-56-5.6.51-rel91.0.1.el7.x86_64.rpm包提供

这个包又提供了一个/etc/my.cnf文件,导致和MySQL主包冲突,无法安装成功,所以要替换掉它。

Transaction check error:
  试图安装 mysql-community-server-8.0.31-1.el7.x86_64 和 Percona-Server-shared-56-5.6.51-rel91.0.1.el7.x86_64 会导致文件 /etc/my.cnf 冲突

下载Percona-Server-shared-56-5.6.51-rel91.0.1.el7.x86_64.rpm到Windows,解压,得到两个文件

 

 创建文件libmysqlclient.spec

Name:     libmysqlclient
Version:  18.1.0
Release:  1
Summary:  libmysqlclient-18.1.0
Summary(zh_CN):  libmysqlclient-18.1.0
License:  GPLv3+
 
Packager: XX Software
 
%description
libmysqlclient,Resolve MySQL and Xtrabackup installation conflicts
 
%description -l zh_CN
libmysqlclient,解决MySQL和xtrabackup安装冲突
 
%install
mkdir -p %{buildroot}/usr/lib64
install -m 755 -t %{buildroot}/usr/lib64 /usr/lib64/libmysqlclient.so.18.1.0
install -m 755 -t %{buildroot}/usr/lib64 /usr/lib64/libmysqlclient_r.so.18.1.0
 
 
%files
/usr/lib64/libmysqlclient.so.18.1.0
/usr/lib64/libmysqlclient_r.so.18.1.0

创建文件Dockerfile

FROM centos:7.6.1810
 
RUN sed -e 's|^mirrorlist=|#mirrorlist=|g' \
        -e 's|^#baseurl=http://mirror.centos.org|baseurl=https://mirrors.tuna.tsinghua.edu.cn|g' \
        -i.bak \
        /etc/yum.repos.d/CentOS-*.repo && \
    yum install -y rpm-build rpmdevtools
 
CMD cd /tmp/libmysqlclient/ && \
    mkdir -p /usr/lib64 && \
    cp libmysqlclient*.so.18.1.0 /usr/lib64 && \
    rpmbuild -bb libmysqlclient.spec --define "_topdir ${PWD}/rpmbuild"

四个文件放同一个目录,然后build + run

docker build -t rpm_libmysqlclient .
 
docker run --rm \
  -v /etc/localtime:/etc/localtime \
  -v ${PWD}:/tmp/libmysqlclient/ \
  rpm_libmysqlclient

最后会得到rpmbuild/RPMS/x86_64/libmysqlclient-18.1.0-1.x86_64.rpm包

替换掉Percona-Server-shared-56-5.6.51-rel91.0.1.el7.x86_64.rpm,再安装就没问题了。

标签:libmysqlclient,--,离线,CentOS7,yum,&&,MySQL,lib64,rpm
From: https://www.cnblogs.com/abo6364/p/16915045.html

相关文章

  • Mysql索引
    Innodb页结构在插入数据到用户数据区域时会进行排序页目录分组存储数据区域每一组的第一个元素索引值和地址,每组默认为6个元素......
  • 20221122 常用MySQL查询
    查询版本selectversion();查询表名和表注释selectTABLE_NAME,TABLE_COMMENTfromINFORMATION_SCHEMA.Tableswheretable_schema='daoancomp';查询表字段和注......
  • mysqldump 脚本
    安装schema分每个文件导出#!/bin/envbashDB_USER=dbxxDB_PASSWORD=dbxxBACKUP_DIR=/opt/mysql_bak/foriin`/usr/local/mysql/bin/mysql-u$DB_USER-p$DB_PA......
  • mysql for循环储存过程
    数据库200多万条数据,整表关联更新耗时8个小时没有结果索性尝试了一下储存过程划分数据循环更新,耗时453秒,真香delimiter//#定义//为一句sql的结......
  • centos7安装配置nacos
    1、nacos1.1下载:https://github.com/alibaba/nacos/releases?page=42、安装配置https://blog.csdn.net/yangxiao_hui/article/details/106860041?spm=1001.2101.3001.......
  • UltraISO制作的U盘启动盘安装centos7的时候识别不到盘的解决方法
    在装系统的时候发现用UltraISO制作的U盘启动盘安装centos7的时候会出现下面的报错: 最后提示超时导致安装失败。现在将解决问题的方法列下来:Step1:修改U盘的\isolin......
  • MySQL
    MySQL安装环境:win71、下载zip安装包:MySQL8.0ForWindowszip包下载地址:https://dev.mysql.com/downloads/file/?id=476233,进入页面后可以不登录。后点击底部“Nothank......
  • mysql三范式
    第一范式(1NF):要求数据达到原子性,使数据不可再分;例如:  进行修改: 第二范式(2NF):使每一行数据具有唯一性,并消除数据之间的“部分依赖”,使一个表中的非主键字段,完全依赖于主......
  • mysql分区
    1.检查mysql是否支持分区 2.查看是否有分区   2.分区类型:    RANGE 分区:基于属于一个给定连续区间的列值,把多行分配给分区.·      LIST 分区:类似......
  • mysql慢查询操作
    MySQL慢查询日志总结慢查询日志概念   MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值......