设为首页 收藏本站
查看: 801|回复: 0

[经验分享] RedHat下mysql的几种不同方式的安装

[复制链接]

尚未签到

发表于 2018-5-11 10:55:50 | 显示全部楼层 |阅读模式
  准备工作:
  主要是为了回顾下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文件
[root@evan ~]# vim /etc/yum.repos.d/my.repo
以下为文件内容
[centos]
name=centos
baseurl=http://mirrors.sohu.com/centos/$releasever/os/$basearch
gpgcheck=0
enabled=1  

  2. yum安装mysql
[root@evan ~]# yum install mysql mysql-server  mysql为客户端,mysql-server为服务端
  

  3. 安装后启动mysqld,进行验证
[root@evan ~]# service mysqld start
Starting mysqld:                                           [  OK  ]
[root@evan ~]# 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
[root@evan ~]# rpm -e --nodeps mysql-libs-5.1.*  

  2. 安装mysql和mysqld
[root@evan ~]# rpm -ivh MySQL-client-5.6.15-1.el6.i686.rpm MySQL-server-5.6.16-1.el6.i686.rpm  

  3. 启动mysql服务
[root@evan ~]# 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下的错误日志,发现错误
[Warning] TIMESTAMPwithimplicitDEFAULTvalueisdeprecated. Please use --explicit_defaults_for_timestamp server option  

  只要重新初始化下数据库就行。
[root@evan ~]# mysql_install_db --user=mysql  

  再次启动myql服务
[root@evan ~]# service mysql start
Starting MySQL..... SUCCESS!  

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

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

  2. 根据SPEC文件制作rpm包
[root@evan ~]# cd rpmbuild/SPECS/
[root@evan SPECS]# ls
mysql.spec
[root@evan SPECS]# 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,则安装后再进行
  

[root@evan SPECS]# yum install gperf
。。。。
[root@evan SPECS]# 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.  

  做出修改,再次编译
[root@evan SPECS]# rpmbuild -ba --define='runselftest 0' mysql.specyouch  

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

  安装camke,再试
  

[root@evan SPECS]# yum install cmake
[root@evan SPECS]# 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,之后再次编译
[root@evan SPECS]# yum install libaio-devel
[root@evan SPECS]# rpmbuild -ba --define='runselftest 0' mysql.specyouch  之后要等好长一段时间,然后可以到rpmbuild中的RPMS文件下找到文件。
  

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

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

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

  

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

[root@evan ~]# useradd -r -M -d /mydata/data/ mysql
[root@evan ~]# chown -R mysql:mysql /mydata/data/  

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

  4. 创建软链接
[root@evan ~]# cd /usr/local/
[root@evan local]# ln -sv mysql-5.6.13-linux-glibc2.5-i686/ mysql  

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

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

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

  8. 修改PATH变量
[root@evan mysql]# 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
[root@evan mysql]# ln -sv /usr/local/mysql/include/ /usr/include/mysql
`/usr/include/mysql' -> `/usr/local/mysql/include/'  

  11. 输出mysql的库文件给系统库查找路径
[root@evan mysql]# echo "/usr/local/mysql/lib/" > /etc/ld.so.conf.d/mysql.conf
[root@evan mysql]# 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
[root@evan ~]# tar xf cmake-2.8.12.2.tar.gz
[root@evan cmake-2.8.12.2]# cd cmake-2.8.12.2
[root@evan cmake-2.8.12.2]# ./configure
[root@evan cmake-2.8.12.2]# make && make install  

  2. 编译安装mysql
[root@evan ~]# groupadd -r mysql
[root@evan ~]# useradd -g mysql -r -d /mydata/data mysql
[root@evan ~]# tar xf mysql-5.6.13.tar.gz
[root@evan mysql-5.6.13]# cd mysql-5.6.13
[root@evan 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
[root@evan mysql-5.6.13]# make
[root@evan mysql-5.6.13]# 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、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-458562-1-1.html 上篇帖子: Linux网络服务_邮件服务器 下篇帖子: Redhat5下haproxy+keepalived+nginx配置笔记
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表