mysql自动化运维平台_MySQL自动化运维之安装篇

MySQL安装一般使用RPM或者源码安装的方式。RPM安装的优点是快速,方便.缺点是不能自定义安装目录.如果需要调整数据文件和日志文件

MySQL安装一般使用RPM或者源码安装的方式。

RPM安装的优点是快速,方便.缺点是不能自定义安装目录.如果需要调整数据文件和日志文件的存放位置,还需要进行一些手动调整 源码安装的优点是可以自定义安装目录,缺点是编译时间长,过程复杂

其实还有一种方式,定制RPM包.

它相当于用源码安装的方式定制了一个RPM包.一次打包,可以多次使用

它可以定制路径,安装时自动创建帐号,自动配置服务,环境变量等,并且安装过程快速,简单。

在大规模部署的场景下,优点十分突出.

缺点是制作RPM包,需要自己编写Red Hat定义的spec文件.而spec文件编写的学习曲线比较陡.

需求如下

1.创建用户mysql

2.数据库软件安装在/home/mysql/mysql-5.6.14目录

3.数据文件存放在/data目录下

4.配置服务,自动启动

首先,下载rpmbuild

yum install rpm-build -y

它是Red Hat用于打RPM包的工具.

安装之后重启计算机,可以看到/root/rpmbuild目录下有如下文件夹

2e2fc559f30108d30f86391796e54349.png

这个工具打包的过程大致如下,

编写spec指定打包的过程

将源码压缩包放在SOURCES目录下,

将源码解压缩到BUILD目录,执行make命令

将make install 的结果放在BUILDROOT目录下,

最后将BUILDROOT下编译好的二进制文件制作成RPM包。

并且可以指定在RPM安装之前,安装之后,卸载等过程执行的命令

首先,下载源码包

并将其复制到指定的目录

/root/rpmbuild/SOURCES/mysql-5.6.14.tar.gz

安装编译MySQL需要的依赖包

yum -y install make gcc-c++ cmake bison-devel ncurses-devel

编写spec脚本

vim mysql.spec

Name: MySQL

Version: 5.6.14

Release: 1%{?dist}

Summary: MySQL-5.6.14 RPM

Group: applications/database

License: GPL

URL:

Source0: mysql-5.6.14.tar.gz

BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)

BuildRequires: cmake

AutoReqProv: no

%description

MySQL 5.6.14

%define MYSQL_USER mysql

%define MYSQL_GROUP mysql

%prep

%setup -n mysql-%{version}

%build

cmake \

-DCMAKE_INSTALL_PREFIX=/home/mysql/mysql-5.6.14 \

-DMYSQL_DATADIR=/data \

-DSYSCONFDIR=/etc \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_MEMORY_STORAGE_ENGINE=1 \

-DWITH_READLINE=1 \

-DMYSQL_UNIX_ADDR=/data/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}

%pre

mkdir -p /data

useradd -m -s /bin/bash mysql

chown -R mysql:mysql /data

%post

/home/mysql/mysql-5.6.14/scripts/mysql_install_db --basedir=/home/mysql/mysql-5.6.14 --datadir=/data --user=mysql

cp /home/mysql/mysql-5.6.14/support-files/mysql.server /etc/init.d/mysql

chkconfig mysql on

service mysql start

echo "export PATH=.:$PATH:/home/mysql/mysql-5.6.14/bin;" >> /home/mysql/.bashrc

source /home/mysql/.bashrc

%preun

service mysql stop

chkconfig --del mysql

userdel mysql

rm -rf /home/mysql

rm -rf /data

rm -rf /etc/init.d/mysql

%clean

rm -rf %{buildroot}

%files

%defattr(-, %{MYSQL_USER}, %{MYSQL_GROUP})

%attr(755, %{MYSQL_USER}, %{MYSQL_GROUP}) /home/mysql/mysql-5.6.14/*

%changelog

其中

Source0: mysql-5.6.14.tar.gz

这个压缩文件需要放在指定的目录中(/root/rpmbuild/SOURCES)

自动解压的时候,会在这个指定目录中找这个文件

AutoReqProv: no

这个参数必须设置,否则在安装的时候,会显示有依赖包的缺失.实际上是不需要的。

%setup -n mysql-%{version}

解压源码包之后,会进入目录执行build,它默认是根据%{name}和%{version}拼接的目录.

以MySQL为例,在spec中写的name为MySQL,version为5.6.14

那么它会进入MySQL-5.6.14的目录,

但是源码包解压之后的目录是mysql-5.6.14(小写)

所以在setup这个段使用-n参数,匹配这个目录.(就是说默认的设置不灵,需要自己匹配目录)

make -j `cat /proc/cpuinfo | grep processor| wc -l`

查看计算机有几个核,然后多线程编译

这个脚本的过程是这样的

首先解压源码包

%prep

%setup -n mysql-%{version}

然后执行%build的过程,make编译

然后执行%install

将编译之后的代码真实的安装一遍,

它安装的目录是/root/rpmbuild/BUILDROOT/MySQL-5.6.14-1.el6.i386/home/mysql/mysql-5.6.14/

因为我们指定的安装目录是/home/mysql/mysql-5.6.14/,它相当于在一个沙盒中安装了一遍.

它会将沙盒中安装之后的文件打成RPM包

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值