自制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 ...
随机推荐
- 【BZOJ3417】Poi2013 Tales of seafaring 分层图BFS
[BZOJ3417]Poi2013 Tales of seafaring Description 一个n点m边无向图,边权均为1,有k个询问 每次询问给出(s,t,d),要求回答是否存在一条从s到t的 ...
- sssssss
1dispatcherServlet—拦截到spring mvc的请求 2dispatchServlet调用HandlerMapping( DefaultAnnoationHandlerMapping ...
- angularJs-脏检查
来自:http://www.cnblogs.com/liuyanan/p/4935652.html scope是一个指向应用model的object,也是表达式的执行上下文. scope被放置在一个类 ...
- qt model view 编程总结
看不见的root的 QModelIndex() 是 无效的 list 和table 的index 函数中的parent参数就只要 root QModelIndex 就可以,因为没有层级概念 Model ...
- Netty进行RPC服务器的开发 需要考虑的问题
谈谈如何使用Netty开发实现高性能的RPC服务器 - Newland - 博客园 http://www.cnblogs.com/jietang/p/5615681.html 如何实现.基于什么原理? ...
- Mysql日常操作
创建用户并授权 grant all privileges on test.* to "test"@"localhost" identified by " ...
- Buy the souvenirs---hdu2126(01背包输出方案数)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2126 有n个物品每个物品的价格是v[i],现在有m元钱问最多买多少种物品,并求出有多少种选择方法: 如 ...
- 使用Standford coreNLP进行中文命名实体识别
因为工作需要,调研了一下Stanford coreNLP的命名实体识别功能. Stanford CoreNLP是一个比较厉害的自然语言处理工具,很多模型都是基于深度学习方法训练得到的. 先附上其官网链 ...
- NodeJS开发环境搭建
原创作者: zero20121222 NodeJS开发环境搭建 1.安装NodeJS 1.编译环境 源代码编译器,通常 Unix/Linux平台都自带了C++的编译器(GCC/G++).如果没有,请通 ...
- 0606-Zuul构建API Gateway-Zuul过滤器以及禁用Zuul过滤器
一.概述 针对Spring Cloud的Zuul配备了许多在代理和服务器模式下默认启用的ZuulFilter bean. 有关启用的可能过滤器,请参阅zuul过滤器包. 二.Zuul过滤器使用 2.1 ...