MySQL 5.7源码编译后制作RPM包

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 源码编译后,打包成RPM包,yum install 大规模部署RPM,更适合自动化运维部署。

1、打包/压缩
mkdir -p /backup
chown -R apps:apps /backup
chmod -R 755 /backup
su - apps
cd /backup/
tar -czvf mysql57-x86_64.tar.gz /apps

tar -xzvf mysql57-x86_64.tar.gz .

2、安装rpm-build
yum install rpm-build
su - apps
mkdir -pv rpmbuild/{BUILD,SOURCES,SPECS,RPMS,SRPMS}

tree /home/apps/rpmbuild/

vim ~/.rpmmacros
%_topdir /home/apps/rpmbuild
%_prefix /apps
%debug_package %{nil}

3、拷贝二进制文件
cd /root/rpmbuild/SOURCES
cp /backup/mysql57-x86_64.tar.gz .

4.配置spec
cd /home/apps/rpmbuild/SPECS
vim yunbee-mysql57-suite-v2.0.spec

chmod 755 yunbee-mysql57-suite-v2.0.spec

5.构建rpm包
su - apps
rpmbuild -bb yunbee-mysql57-suite-v2.0.spec #用bb参数生成rpm包
rpmbuild -bc yunbee-mysql57-suite-v2.0.spec #bc只是部分执行,不能生成rpm包的。
rpmbuild --showrc
rpmbuild --showrc |grep _topdir
rpmbuild --showrc |grep _tmppath
rpmbuild --showrc|grep _prefix

编译命令说明:
rpmbuild
-ba 既生成src.rpm又生成二进制rpm
-bs 只生成src的rpm
-bb 只生二进制的rpm
-bp 执行到pre
-bc 执行到 build段
-bi 执行install段
-bl 检测有文件没包含

spec配制文件

1、%setup -q -n
tar解压出来的顶级目录如果和tar包名不同,一定要在%setup -q -n
【这里写解压后生成的目录】这里指定,原则就是这样,你的具体环境我也看不到,哪里有错得自己看看。

1、普通用户可以打包,但需要配置一个~/..rpmmacros

内容类似:
%_topdir /home/apps/rpmbuild
%_prefix /apps
%debug_package %{nil}

这里都改成普通用户可写的目录

2、如果解压目录覆盖了mysql运行目录,肯定要关闭。
但正常来说不会覆盖的,都在那个BUILDROOT下进行文件复制。

3、把带 SOURCE1的地方去掉
这就是你%install里的cp -rv那部分。

4、这个命名:vipshop-mysqlpay56-suite-1.0.3-1.x86_64是哪个变量过来的?
这个是spec文件里的name version之类变量组合起来的。

5.去掉:/apps/conf/mysql/.cnf相关的行

5.error: File not found by glob: /root/rpmbuild/BUILDROOT/yunbee-mysql57-suite-2.1.0-1.x86_64/usr/logs/

执行如下:
echo "%_prefix /apps" > ~/.rpmmacros

6.error: File not found by glob: /root/rpmbuild/BUILDROOT/yunbee-mysql57-suite-2.1.0-1.x86_64/apps/dbdat/

一个道理,那两个目录下没有东西
那两个在%files下声明要打包的安装目录,实际在BUILDROOT临时安装目录下不存在。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
存储 安全 Java
基于Java+MySQL停车场车位管理系统详细设计和实现(源码+LW+调试文档+讲解等)
基于Java+MySQL停车场车位管理系统详细设计和实现(源码+LW+调试文档+讲解等)
|
24天前
|
存储 自然语言处理 关系型数据库
MySQL全文索引源码剖析之Insert语句执行过程
【8月更文挑战第17天】在MySQL中,处理含全文索引的`INSERT`语句涉及多步骤。首先进行语法解析确认语句结构无误;接着语义分析检查数据是否符合表结构及约束。随后存储引擎执行插入操作,若涉及全文索引则进行分词处理,并更新倒排索引结构。此外,事务管理确保了操作的完整性和一致性。通过示例创建含全文索引的表并插入数据,可见MySQL如何高效地处理此类操作,有助于优化数据库性能和提升全文搜索效果。
|
28天前
|
NoSQL 关系型数据库 MySQL
SpringBoot 集成 SpringSecurity + MySQL + JWT 附源码,废话不多直接盘
SpringBoot 集成 SpringSecurity + MySQL + JWT 附源码,废话不多直接盘
70 2
|
1月前
|
关系型数据库 MySQL Linux
【一键解锁神秘力量!】CentOS 7 通过编译源码方式安装 MySQL 数据库 —— 从零到英雄的数据库安装实战秘籍!
【8月更文挑战第9天】随着业务增长,对数据库的需求日益提高。在 CentOS 7 中,通过编译源码安装 MySQL 可提供更高定制性和灵活性。本文详细介绍从准备环境、下载源码、配置编译参数到安装 MySQL 的全过程,并对比 RPM 包安装方法,帮助读者根据需求选择合适方案。实践时需注意备份数据、选择合适版本、确保安全性和调优性能等要点。
102 1
|
2月前
|
数据库
基于PHP+MYSQL开发制作的趣味测试网站源码
基于PHP+MYSQL开发制作的趣味测试网站源码。可在后台提前设置好缘分, 自己手动在数据库里修改数据,数据库里有就会优先查询数据库的信息, 没设置的话第一次查询缘分都是非常好的 95-99,第二次查就比较差 , 所以如果要你女朋友查询你的名字觉得很好 那就得是她第一反应是查和你的缘分, 如果查的是别人,那不好意思,第二个可能是你。
48 3
|
1月前
|
关系型数据库 MySQL Java
“惊呆了!无需改动Nacos源码,轻松实现SGJDBC连接MySQL?这操作太秀了,速来围观,错过等哭!”
【8月更文挑战第7天】在使用Nacos进行服务治理时,常需连接MySQL存储数据。使用特定的SGJDBC驱动连接MySQL时,一般无需修改Nacos源码。需确保SGJDBC已添加至类路径,并在Nacos配置文件中指定使用SGJDBC的JDBC URL。示例中展示如何配置Nacos使用MySQL及SGJDBC,并在应用中通过Nacos API获取配置信息建立数据库连接,实现灵活集成不同JDBC驱动的目标。
33 0
|
3月前
|
关系型数据库 MySQL 数据库
使用ZIP包安装MySQL及配置教程
使用ZIP包安装MySQL及配置教程
132 4
|
3月前
|
消息中间件 关系型数据库 MySQL
实时计算 Flink版操作报错合集之同步MySQL数据并EP(复杂事件处理)时,编译报错,如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
111 1
|
3月前
vue.js+node.js+mysql在线聊天室源码
vue.js+node.js+mysql在线聊天室源码 技术栈:vue.js+Element UI+node.js+socket.io+mysql
156 3
|
3月前
|
移动开发 小程序 关系型数据库
java+ IDEA+ Uniapp+ mysql医院3D智能导诊系统源码
这是一个基于Java、IDEA、Uniapp和MySQL的医院3D智能导诊系统,采用Springboot后端框架和Redis、Mybatis Plus、RocketMQ等技术。系统通过对话式交互,精准推荐就诊科室,解决患者挂号困扰。它还具备智能预问诊功能,提升诊疗效率和准确性,确保医生能快速了解患者详情。此系统还支持小程序和H5,方便患者使用。
41 0

热门文章

最新文章

推荐镜像

更多