sunsir 发表于 2018-5-11 10:55:50

RedHat下mysql的几种不同方式的安装

  准备工作:
  主要是为了回顾下RedHat下各种软件的安装方式,而恰好MySQL五种方式都提供了,所以这里将其作为例子。由最简单的yum安装,到rpm安装,再是rpm源码包安装,之后是二进制安装,最后是源码安装。
  环境为:CentOS_6.4_i386
  主要内容:

[*]  yum安装MySQL
[*]  rpm安装MySQL
[*]  rpm源码包安装MySQL
[*]  二进制格式的MySQL安装
[*]  源码格式的MySQL安装
  

  

  

  一. yum安装MySQL
  Yum,全称为Yellow dog Updater,Modified,是一个在Fedora和RedHat以及SUSE、CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
  yum能够自动解决依赖关系,算是最简单的安装方式了
  

  1.设置正确的yum源,编写repo文件
# vim /etc/yum.repos.d/my.repo
以下为文件内容

name=centos
baseurl=http://mirrors.sohu.com/centos/$releasever/os/$basearch
gpgcheck=0
enabled=1  

  2. yum安装mysql
# yum install mysql mysql-server  mysql为客户端,mysql-server为服务端
  

  3. 安装后启动mysqld,进行验证
# service mysqld start
Starting mysqld:                                          
# mysql
Welcome to the MySQL monitor.Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.1.71 Source distribution
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>  出现如上信息,则是安装完毕。
  

  二. rpm包安装
  其实yum就是基于rpm的前端管理工具,如果使用rpm包安装的话,就得自己解决依赖关系。不过这里要安装的是MySQL-client-5.6.15-1.el6.i686.rpm和MySQL-server-5.6.16-1.el6.i686.rpm,与系统已经安装的mysql-libs-5.1.66-2.el6_3有冲突,而crond服务又依赖于mysql-libs,卸载mysql-libs时会卸载cronie,crontab等软件包,这里的解决办法是加--nodeps。
  

  1. 卸载mysql-libs
# rpm -e --nodeps mysql-libs-5.1.*  

  2. 安装mysql和mysqld
# rpm -ivh MySQL-client-5.6.15-1.el6.i686.rpm MySQL-server-5.6.16-1.el6.i686.rpm  

  3. 启动mysql服务
# service mysql start
Starting MySQL... ERROR! The server quit without updating PID file (/var/lib/mysql/evan.pid).  注意,这里启动的服务脚本并不是mysqld,而是mysql,并且,配置文件是/usr/my.cnf,数据目录在/var/lib/mysql下。
  查看/var/lib/mysql下的错误日志,发现错误
TIMESTAMPwithimplicitDEFAULTvalueisdeprecated. Please use --explicit_defaults_for_timestamp server option  

  只要重新初始化下数据库就行。
# mysql_install_db --user=mysql  

  再次启动myql服务
# service mysql start
Starting MySQL..... SUCCESS!  

  三. 使用rpm源码包安装
  使用源码包安装mysql时,先要将xx.src.rpm制作成rpm包格式。然后按照rpm包的安装方式即可。
  使用的源码包是MySQL-5.6.16-1.el6.src.rpm
  

  1. 安装rpm源码包
# rpm -ivh MySQL-5.6.16-1.el6.src.rpm  之后,在家目录下回生成一个rpmbuild文件夹
  

  2. 根据SPEC文件制作rpm包
# cd rpmbuild/SPECS/
# ls
mysql.spec
# rpmbuild -ba mysql.spec
error: Failed build dependencies:
gperf is needed by MySQL-5.6.16-1.linux_glibc2.12.i686  rpmbuild命令中-ba会同时生成编译好的rpm包和源码rpm包,-bb则只是生成编译好的rpm包

  缺少gperf,则安装后再进行
  

# yum install gperf
。。。。
# rpmbuild -ba mysql.spec  

  结果又出现错误
+ echo 'The MySQL regression tests may fail if run as root.'
The MySQL regression tests may fail if run as root.
+ echo 'If you really need to build the RPM as root, use'
If you really need to build the RPM as root, use
+ echo '--define='\''runselftest 0'\'' to skip the regression tests.'
--define='runselftest 0' to skip the regression tests.  

  做出修改,再次编译
# rpmbuild -ba --define='runselftest 0' mysql.specyouch  

  又出现错误:/var/tmp/rpm-tmp.zv8ntk: line 83: cmake: command not found

  安装camke,再试
  

# yum install cmake
# rpmbuild -ba --define='runselftest 0' mysql.specyouch  

  又是错误,
CMake Error at cmake/build_configurations/mysql_release.cmake:45 (MESSAGE):
aio is required on Linux, you need to install the required library:
Debian/Ubuntu:            apt-get install libaio-dev
RedHat/Fedora/Oracle Linux: yum install libaio-devel
SuSE:                     zypper install libaio-devel
If you really do not want it, pass -DIGNORE_AIO_CHECK to cmake.
Call Stack (most recent call first):
CMakeLists.txt:108 (INCLUDE)  

  按照提示安装libaio-devel,之后再次编译
# yum install libaio-devel
# rpmbuild -ba --define='runselftest 0' mysql.specyouch  之后要等好长一段时间,然后可以到rpmbuild中的RPMS文件下找到文件。
  

  四. 二进制格式的包安装
  二进制格式的包相当于windows中的绿色软件,只要解压出来即可使用,当然,配置文件,运行环境都要自己搞定。
  

  1、准备数据目录
  由于数据库会不断扩大,避免与根目录的过度耦合,最好新建一个逻辑卷,并挂载到相应目录下。新建逻辑卷的过程这里就不叙述了。

  假设其逻辑卷的挂载目录为/mydata,而后需要创建/mydata/data目录做为mysql数据的存放目录。

  

  2. 新建用户以安全运行mysql进程

# useradd -r -M -d /mydata/data/ mysql
# chown -R mysql:mysql /mydata/data/  

  3. 解压二进制软件包
# tar xf mysql-5.6.13-linux-glibc2.5-i686.tar.gz -C /usr/local/  

  4. 创建软链接
# cd /usr/local/
# ln -sv mysql-5.6.13-linux-glibc2.5-i686/ mysql  

  5. 修改mysql文件夹下文件的权限并初始化数据库
# cd mysql
# chown -R root:mysql *
# ./scripts/mysql_install_db --user=mysql --datadir=/mydata/data/  

  6. 提供配置文件
# cp support-files/my-default.cnf /etc/my.cnf  同时,修改/etc/my.cnf,将datadir启动并改为/mydata/data
  

  7. 提供服务运行脚本
# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
# chmod +x /etc/rc.d/init.d/mysqld  完成以上步骤就可以启动服务进行测试了,不过是mysql安装规范化,并将其开发组件导出给系统使用,下面的步骤也同样要完成。
  

  8. 修改PATH变量
# echo "export PATH=/usr/local/mysql/bin:$PATH" > /etc/profile.d/mysql.sh  

  9. 修改MANPATH
  编辑/etc/man.config,添加如下行即可:
  MANPATH/usr/local/mysql/man
  

  10. 输出mysql的头文件至系统头文件路径/usr/include
# ln -sv /usr/local/mysql/include/ /usr/include/mysql
`/usr/include/mysql' -> `/usr/local/mysql/include/'  

  11. 输出mysql的库文件给系统库查找路径
# echo "/usr/local/mysql/lib/" > /etc/ld.so.conf.d/mysql.conf
# ldconfig -v | grep mysql
/usr/local/mysql/lib:
libmysqlclient.so.18 -> libmysqlclient_r.so.18.1.0
/usr/lib/mysql:
libmysqlclient_r.so.16 -> libmysqlclient_r.so.16.0.0
libmysqlclient.so.16 -> libmysqlclient.so.16.0.0  安装完成。
  

  五. 源码包安装mysql
  mysql5.5之后,源码安装需要cmake进行编译。这里只介绍安装mysql,安装后的相关配置请参考二进制安装mysql中的相关内容。
  

  请先下载mysql的源码包和cmake的源码包
  这里准备的是cmake-2.8.12.2.tar.gz和mysql-5.6.13.tar.gz
  

  1. 编译安装cmake
# tar xf cmake-2.8.12.2.tar.gz
# cd cmake-2.8.12.2
# ./configure
# make && make install  

  2. 编译安装mysql
# groupadd -r mysql
# useradd -g mysql -r -d /mydata/data mysql
# tar xf mysql-5.6.13.tar.gz
# cd mysql-5.6.13
# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/mydata/data \
-DSYSCONFDIR=/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_LIBWRAP=0 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
# make
# make install  

  相关的选项:
  指定安装文件的安装路径,数据目录,配置文件位置:
  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
  -DMYSQL_DATADIR=/data/mysql
  -DSYSCONFDIR=/etc
  

  默认编译的存储引擎包括:csv、myisam、myisammrg和heap。若要安装其它存储引擎,可以使用类似如下编译选项:
  -DWITH_INNOBASE_STORAGE_ENGINE=1
  -DWITH_ARCHIVE_STORAGE_ENGINE=1
  -DWITH_BLACKHOLE_STORAGE_ENGINE=1
  -DWITH_FEDERATED_STORAGE_ENGINE=1
  

  如若要编译进其它功能,如SSL等,则可使用类似如下选项来实现编译时使用某库或不使用某库:
  -DWITH_READLINE=1
  -DWITH_SSL=system
  -DWITH_ZLIB=system
  -DWITH_LIBWRAP=0
  

  

  
页: [1]
查看完整版本: RedHat下mysql的几种不同方式的安装