首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com ToB IT社区-企服评测·应用市场
»
论坛
›
数据库
›
Oracle
›
封装适用于CentOS7的MySQL离线包
返回列表
发新帖
封装适用于CentOS7的MySQL离线包
[复制链接]
发表于 2022-11-22 17:58:45
|
显示全部楼层
|
阅读模式
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,再安装就没问题了。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
回复
使用道具
举报
返回列表
浏览过的版块
.Net
MES
网络安全
数据仓库与分析
Mysql
容器及微服务
云原生
DevOps与敏捷开发
Nosql
光之使者
+ 我要发帖
登录后关闭弹窗
登录参与点评抽奖 加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表