自制mysql的rpm包
MySQL安装一般使用RPM或者源码安装的方式。
RPM安装的优点是快速,方便.缺点是不能自定义安装目录.如果需要调整数据文件和日志文件的存放位置,还需要进行一些手动调整。
源码安装的优点是可以自定义安装目录,缺点是编译时间长,过程复杂
其实还有一种方式,定制RPM包.
它相当于用源码安装的方式定制了一个RPM包.一次打包,可以多次使用
它可以定制路径,安装时自动创建帐号,自动配置服务,环境变量等,并且安装过程快速,简单。
在大规模部署的场景下,优点十分突出.
缺点是制作RPM包,需要自己编写Red Hat定义的spec文件,而编写完成后,也需要进行编译
现在开始定制mysql的rpm包
1、定制rpm包,首先需要安装一个包
yum -y install rpm-build
2、定制rpm包只需要用到普通用户便可以完成,所以这里推荐使用普通用户
useradd wadeson
3、创建自制rpm包需要用到的基本仓库目录
在用户的家目录下面执行[wadeson@testdb ~]$ rpmbuild ~,即可,会自动生成需要用到的一些目录
相应的目录创建好了之后,开始进行真正的操作,首先下载mysql的源码包,这里以mysql-5.6.37为例
将下载好的mysql-5.6.37存放在相应的目录:
[wadeson@testdb ~]$ cd rpmbuild/SOURCES/
[wadeson@testdb SOURCES]$ ll
total 31448
-rw-rw-r--. 1 wadeson wadeson 32200158 Aug 23 22:19 mysql-5.6.37.tar.gz
mkdir -p /data/mysql
if ! id %{MYSQL_USER} > /dev/null 2>&1;then
useradd -M -s /sbin/nologin %{MYSQL_USER}
fi
chown -R mysql:mysql /data/mysql
/usr/local/mysql-5.6.37/scripts/mysql_install_db --basedir=/usr/local/mysql-5.6.37 --datadir=/data/mysql --user=mysql
cp /usr/local/mysql-5.6.37/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig mysqld on
cp /usr/local/mysql-5.6.37/my.cnf /etc/my.cnf
Name: mysql
Version: 5.6.37
Release: 1%{?dist}
Summary: MySQL-5.6.37 RPM Group: applications/database
License: GPL
URL: http://www.mysql.com
Source0: mysql-5.6.37.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root BuildRequires: cmake,ncurses-devel
#Requires: AutoReqProv: no %description
this is rpmbuilding mysql5.6.37 rpm %define MYSQL_USER mysql
%define MYSQL_GROUP mysql %prep
%setup -q -n mysql-%{version} %build
cmake . \
-DCMAKE_INSTALL_PREFIX:=/usr/local/mysql-5.6.37 \
-DMYSQL_DATADIR=/data/mysql \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci make -j `cat /proc/cpuinfo | grep processor| wc -l` %install
rm -rf %{buildroot}
make install DESTDIR=%{buildroot} %clean
rm -rf %{buildroot} %files
%defattr(-, %{MYSQL_USER}, %{MYSQL_GROUP})
%attr(755, %{MYSQL_USER}, %{MYSQL_GROUP}) /usr/local/mysql-5.6.37/* %pre
mkdir -p /data/mysql
if ! id %{MYSQL_USER} > /dev/null 2>&1;then
useradd -M -s /sbin/nologin %{MYSQL_USER}
fi
chown -R mysql:mysql /data/mysql %post
/usr/local/mysql-5.6.37/scripts/mysql_install_db --basedir=/usr/local/mysql-5.6.37 --datadir=/data/mysql --user=mysql
cp /usr/local/mysql-5.6.37/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig mysqld on
cp /usr/local/mysql-5.6.37/my.cnf /etc/my.cnf %preun
service mysqld stop
chkconfig --del mysqld
userdel mysql
rm -rf /home/mysql
rm -rf /data/mysql
rm -rf /etc/init.d/mysqld
rm -rf /usr/local/mysql-5.6.37 %changelog 完成了spec文件后,于是使用如下命令进行编译:
[wadeson@testdb SPECS]$ rpmbuild --help
Usage: rpmbuild [OPTION...]
--quiet
Build options with [ <specfile> | <tarball> | <source package> ]:
-bp build through %prep (unpack sources and apply patches) from <specfile>
-bc build through %build (%prep, then compile) from <specfile>
-bi build through %install (%prep, %build, then install) from <specfile>
-bl verify %files section from <specfile>
-ba build source and binary packages from <specfile>
-bb build binary package only from <specfile>
-bs build source package only from <specfile>
-tp build through %prep (unpack sources and apply patches) from <tarball>
-tc build through %build (%prep, then compile) from <tarball>
-ti build through %install (%prep, %build, then install) from <tarball>
-ta build source and binary packages from <tarball>
$rpmbuild -bb mysql.spec
这里会输出相应的编译过程,如遇到错误,可根据提示做相应修改
最终没有错误的话,会在如下目录生成rpm包:
自制mysql的rpm包的更多相关文章
- MySQL使用RPM包方式安装
CentOS7安装MySQL的方法之RPM包方式
- 【MySQL】RPM包安装
操作系统:Red Hat Enterprise Linux Server release 6.5 Mysql安装包:MySQL-5.6.35-1.linux_glibc2.5.x86_64.rpm-b ...
- centos7中mysql的rpm包安装
解决依赖 yum remove mysql-libs 执行命令:yum -y install autoconf 安装依赖 yum -y install autoconf 安装mysql rpm -iv ...
- 下载MySQL的rpm包安装MySQL
cd /usr/local/src wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-server-5.7.27-1.el ...
- 用RPM包安装MySQL的默认安装路径问题
在安装PHP时候要对一些配置选项进行设置,其中就有:--with-mysql[=DIR]:包含MySQL扩展,[=DIR]指定mysql安装目录,省略[=DIR]则为默认位置/usr--with-my ...
- Linux 安装 MySQL 详解(rpm 包)
说明:Linux 系统中软件的安装在 root 用户下进行,此安装方式为 rpm 包方式,安装的版本为:MySQL-5.6.25-1.linux_glibc2.5.x86_64.rpm-bundle. ...
- mysql之各版本rpm包安装
发现每次想用mysql的rpm包直接安装的时候,都会出现找不到对应的rpm包的情况,故记录一下查找过程 进入官网->downloads->community->mysql commu ...
- CentOS6.5系统下RPM包安装MySQL5.6(转)
1.查看操作系统相关信息. [root@linuxidc ~]# cat /etc/issue CentOS release 6.5 (Final) Kernel \r on an \m [root@ ...
- (0.2.5)Mysql安装——RPM方式安装
rpm安装mysql 卸载与安装服务端 一.安装服务端与客户端 #查看RPM包中所有的文件shell> rpm -qpl mysql-community-server-version-dis ...
随机推荐
- IOS 十位数0补齐
NSCalendar *calendar = [NSCalendar currentCalendar]; unsigned unitFlags = NSYearCalendarUnit | NSMon ...
- XStream中几个注解的含义和用法
转自:http://blog.csdn.net/robert_mm/article/details/8459879 XStream是个很强大的工具,能将java对象和xml之间相互转化.xstream ...
- 170321、Spring+Quartz实现定时任务的配置方法
Quartz是Java版开源定时调度器. 核心概念: Job 表示一个工作,要执行的具体内容.此接口中只有一个方法 void execute(JobExecutionContext context): ...
- 160429、nodejs--Socket.IO即时通讯
动态web 在html5以前,web的设计上并没有考虑过动态,他一直是围绕着文档设计的,我们看以前比较老的网站,基本上都是某一刻用来显示单一的文档的,用户请求一次web页面,获取一个页面,但是随着时间 ...
- JAVAWEB基础模块开发顺序与数据访问对象实现类步骤
一.模块的开发的顺序 1. 定义数据表 2. 新建模型类 3. 新建"add.jsp" 4. 实现AddServlet中的doGet()方法 5. 定义Dao.Service接口 ...
- 知问前端——html+jq+jq_ui+mySql+ajax
**************************************************************************************************** ...
- iOS 常用框架介绍
iOS框架介绍 Cocoa Touch GameKit 实现对游戏中心的支持,让用户能够在线共享他们的游戏相关的信息 iOS设备之间蓝牙数据传输 从iOS7开始过期 局域网游 ...
- [转]通过apk签名使应用程序有系统权限
[转]通过apk签名使应用程序有系统权限 (2013-01-08 13:40:50) 转载▼ 标签: it 分类: Android 出处:http://blog.csdn.net/doom66151/ ...
- Threaten Model
探测(扫描器,情报搜集)--入侵(vul,exp)--潜伏(RATS,setmft,AFSET)--横向入侵(admin cert,RATS)---信息泄漏(vpn,rats,通讯通道)--删除踪迹( ...
- 时间序列模式——ARIMA模型
ARIMA模型全称为自回归积分滑动平均模型(Autoregressive Integrated Moving Average Model,简记ARIMA),是由博克思(Box)和詹金斯(Jenkins ...