rpm包制作之——mysql-5.7.16
来源:互联网 发布:mac单windows系统 编辑:程序博客网 时间:2024/06/06 07:50
从MySQL 5.7.5开始需要Boost库,也就是因为这个库纠结了好久 )~^~(
By the way,编译过程需要花的时间比较久,对内存和硬盘要求比较高
环境 VM:内存3G,硬盘30G 系统:CentOS release 6.5
mysql-5.7.16源码编译安装
相关依赖安装
# yum -y install make gcc gcc-c++ cmake bison-devel ncurses ncurses-devel perl-JSON perl-devel perl-Time-HiRes
# ntpdate cn.pool.ntp.org
# useradd -M -s /sbin/nologin mysql
从MySQL 5.7.5开始Boost库是必需
Boost库编译安装
./bootstrap.sh
./b2 install threading=multi link=shared
Mysql编译安装
编译
cmake参数: http://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html
# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWIT
H_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DENABLED_LOCAL_INFILE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_READLINE=1 -DMYSQL_USER=mysql
# make -j3 && make install# mkdir /var/lib/mysql/
# chown -R mysql:mysql /var/lib/mysql/
# mkdir -p /usr/local/mysql/data
# chown -R mysql:mysql /usr/local/mysql/data
配置文件修改
# vim /etc/my.cnf
[client]default-character-set=utf8[mysqld]datadir=/usr/local/mysql/datauser=mysql# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0character-set-server=utf8collation-server=utf8_general_ci#server-id=1#log-bin=/tmp/binlog#log-bin-index=/tmp/binlog.index[mysqld_safe]log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid
初始化mysql,记得初始化密码
# bin/mysqld –initialize –user=mysql –basedir=/usr/local/mysql –datadir=/usr/local/mysql/data
# bin/mysqld –user=mysql –basedir=/usr/local/mysql –datadir=/usr/local/mysql/data
# bin/mysql_ssl_rsa_setup
# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# service mysqld start
重置密码
# mysql -uroot -p$passwd -e “set password = password(‘*‘)”;
boost_1_59_0 单独rpmbuild
#vim ~/rpmbuild/SPECS/boost.spec
Name: boostVersion: 1_59_0Release: 1%{?dist}Summary: boost_installGroup: System Environment/DaemonsLicense: GPLv2URL: http://www.boost.org/users/history/version_1_59_0.htmlSource0: boost-1_59_0.tar.gzBuildRoot: %{_topdir}/%{name}-%{version}-%{release}BuildRequires: gcc,make,gcc-c++,bzip2-devel,python-devel,python-libs,libicu-develRequires: bzip2,python-libs %descriptionboost1_59_0 install%prep%setup -q%buildBOOST_ROOT=`pwd`export BOOST_ROOT./bootstrap.sh --prefix=%{buildroot}/usr/ --with-toolset=gcc --with-icuinstall -d -m 755 %{buildroot}/usr/./b2 --layout=system install threading=multi link=shared%cleanrm -rf %{buildroot}%post -p /sbin/ldconfig%postun -p /sbin/ldconfig%files%defattr(-,root,root,-)#${_includedir}/boost/usr/*%doc%changelog
mysql-5.7.16 包括boost
# vim ~/rpmbuild/SPECS/mysql.spec
Name: mysqlVersion: 5.7.16Release: 1%{?dist}Summary: mysql_installGroup: System Environment/DaemonsLicense: GPLv2URL: http://www.boost.org/users/history/version_1_59_0.html&&http://dev.mysql.com/downloads/mysql/Source0: boost_1_59_0.tar.gzSource1: %{name}-%{version}.tar.gzSource2: my.cnfBuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)BuildRequires: gcc,make,gcc-c++,cmake,bison-devel,ncurses,ncurses-devel,bzip2-devel,python-devel,python-libs,bzip2,libicu-develRequires: python-libs,bzip2,perl-JSON,perl-Time-HiRes%descriptionBuild mysql-5.7.16.tar.gz to mysql-5.7.16.rpm%prep%setup -q -b 0 -b 1%buildcd ../boost_1_59_0BOOST_ROOT=`pwd`export BOOST_ROOT./bootstrap.sh --prefix=%{buildroot}/usr/ --with-toolset=gcc --with-icuinstall -d -m 755 %{buildroot}/usr/./b2 install threading=multi link=sharedcd ../mysql-5.7.16cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DENABLED_LOCAL_INFILE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_READLINE=1 -DMYSQL_USER=mysqlmake -j3 %{?_smp_mflags}%installmake install DESTDIR=%{buildroot}install -d -m 755 %{buildroot}/usr/%{__install} -p -D %{SOURCE2} %{buildroot}/etc/my.cnf%preif [ $1 == 1 ];then /usr/sbin/useradd mysql -M -s /sbin/nologin 2>/dev/nullfi%postif [ $1 == 1 ];then mkdir -p /usr/local/mysql/data chown -R mysql:mysql /usr/local/mysql/data 2>/dev/null /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data 2>&1 | tee /usr/local/mysql/default-passwd #/usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data 2>/dev/null /usr/local/mysql/bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data 2>/dev/null cp /usr/local/mysql/bin/* /usr/bin/ 2>/dev/null cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld 2>/dev/null /sbin/chkconfig --add mysqld /sbin/install-info %{_infodir}/%{name}.info %{_infodir}/dir 2> /dev/null || :fi%preunif [ $1 == 0 ];then /usr/sbin/userdel -r mysql 2> /dev/null /etc/init.d/mysqld stop > /dev/null 2>&1 /sbin/chkconfig --del mysqld 2> /dev/null /sbin/install-info --delete %{_infodir}/%{name}.info %{_infodir}/dir 2> /dev/null || :fi%postunif [ $1 == 0 ];then rm -rf /usr/local/mysql 2> /dev/null rm -rf /usr/bin/mysql* 2> /dev/null rm -rf /etc/my.cnf 2> /dev/null rm -rf /etc/init.d/mysqld 2> /dev/nullfi%cleanrm -rf %{buildroot}%files%defattr(-,root,root,-)/usr/local/mysql/*/usr/*%config(noreplace) /etc/my.cnf%doc%changelog
- rpm包制作之——mysql-5.7.16
- rpm包制作之——nginx
- Ganglia之RPM包制作
- 学习笔记之rpm包的制作
- MySQL之——MySQL Cluster集群搭建详解(基于RPM安装包)
- MySQL之——MySQL Cluster集群搭建详解(基于RPM安装包 双管理中心)
- Linux源码包制作RPM包之Apache
- 如何制作rpm包
- 如何制作rpm包
- 制作Linux RPM包
- RPM包的制作
- 制作rpm包
- 如何制作rpm包
- rpm包制作
- rpm包制作过程
- [整理] RPM包制作
- 如何制作rpm包
- rpm包制作
- Nginx学习总结(4)——负载均衡session会话保持方法
- 【Unity3D实战】零基础一步一步教你制作酷跑类游戏(1)
- Java实现一个简单的RPC框架(六) 注册机制
- Spring命名空间介绍
- 远程桌面不能复制粘贴解决办法
- rpm包制作之——mysql-5.7.16
- Java系列笔记 - Java 类加载与初始化
- 文章标题
- Java实现一个简单的RPC框架(五) 基于Socket的传输层实现
- android-屏幕适配
- jquery colspan rowspan
- LINUX C中如何定义可变参数的宏
- JAVA中CLASS.FORNAME的含义
- 利用CSS的transform旋转制作折扇效果