由于工作需要,需要在装有CentOS系统的测试服务器上安装MySQL。由于这台服务器上还有其他重要的测试数据,所以无法连接外网。由于之前安装MySQL一直都是使用yum命令一键完成,手动安装还是有点麻烦。所以这里记录下我在安装过程中遇到的一些问题。在我开始之前,我不得不抱怨。网上有些教程真的很坑爹。教程都是直接从别人那里复制粘贴的,没有写环境,也没有版本号说明。只是看着它就很热。本文安装的MySQL是安装最基本的功能。如需安装其他附加功能,请查看官方文档。本文适用于服务器无法联网时的安装运行。安装环境说明以下是我在写这篇文章时使用的一些环境说明。其他版本的环境,我没有测试过,所以不保证一定能成功,但是小版本号的区别应该没有问题。项目版本说明操作系统CentOS7.2.1511x86_64最小安装MySQLCommunity5.7.18-1.el7.x86_64rpmpackage注意:可以使用cat/etc/redhat-release命令来确定你安装的CentOS的具体版本。准备下载MySQL安装包。推荐使用搜狐的镜像站点下载,因为从MySQL官网下载速度实在是可观。从镜像地址选择对应的版本号下载即可。我这里使用的rpm包有以下4个:mysql-community-client-5.7.18-1.el7.x86_64.rpmmysql-community-common-5.7.18-1.el7.x86_64.rpmmysql-community-libs-5.7.18-1.el7.x86_64.rpmmysql-community-server-5.7.18-1.el7.x86_64.rpm需要以上四个rpm包。如果需要其他功能,可以自行下载。以当前版本为例,包含所有rpm包的文件为mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar,下载numactl包:numactl-2.0.9-6.el7_2.x86_64。rpmnumactl-devel-2.0.9-6.el7_2.x86_64.rpmnumactl-libs-2.0.9-6.el7_2.x86_64.rpm下载其他相关支持:perl-Data-Dumper-2.145-3.el7.x86_64.rpmlibaio-0.3。后面会用到109-13.el7.x86_64.rpm以上的软件包,请提前准备好。这个软件包可以直接在网上搜索下载。这里有一个下载地址。下载地址可以直接在搜索框搜索。下载时注意版本号和位数(64位),将下载的软件包上传到服务器。上,准备安装。安装以下只是我的安装顺序。其实这些包的安装顺序并没有太多明确的要求。不一定要按照下面的顺序安装,但是可能会有一些相关的依赖问题。如果抛出依赖相关的错误,只要安装上面对应的依赖再试。安装libaio-0.3.109-13.el7.x86_64.rpmrpm-ivhlibaio-0.3.109-13.el7.x86_64.rpm安装perl-Data-Dumper-2.145-3.el7.x86_64.rpmrpm-ivhperl-Data-Dumper-2.145-3.el7.x86_64.rpm我在安装上面两项的时候没有遇到依赖问题。如果在实际安装过程中遇到,请查看相关提示,下载相应的包进行安装。安装numactl相关的rpm-ivhnumactl*如果没有安装这个包,我们会得到如下错误error:Faileddependencies:libnuma.so.1()(64bit)isneededbymysql-community-server-5.7.18-1.mysql-community-server-5.7.18-1.el7.x86_64libnuma.so.1(libnuma_1.1)(64bit)需要mysql-community-server-1.el7.x86_64libnuma.so.1(libnuma_1.2)(64bit)需要mysql-community-server-5.7.18-1.el7.x86_64如果此时直接安装mysql,我们会得到一个异常:warning:mysql-community-libs-5.7.18-1.el7.x86_64.rpm:HeaderV3DSA/SHA1签名,密钥ID5072e1f5:NOKEY错误:失败的依赖项:mysql-community-common(x86-64)>=5.7.9需要mysql-community-libs-5.7.18-1.el7.x86_64mariadb-libsisObsoletedbymysql-community-libs-5.7.18-1.el7.x86_64第一行还能看清楚,是依赖问题,第二行“mariadb-libsisobsolete”是什么鬼?弃了,为什么不提供一个新的还有这种弱智提示呢?查了一下,原来是因为CentOS7上已经有mariadb了,这个会和MySQL的mariadb冲突。所以这时候我们需要卸载系统自带的mariadb,然后使用mysql自带的mariadb。我们先查看系统安装的版本rpm-qa|grepmariadb,然后卸载它。卸载过程中会提示无法卸载,因为其他软件依赖这个包。我们需要加上--nodeps参数强制卸载rpm-e--nodepsmariadb-libs-5.5.37-1.el7_0.x86_64注意mariadb-libs-5.5.37-1.el7_0.x86_64I上面写的是我刚刚用rpm-qa|查看的结果grep玛丽亚布。版本可能不同。解决这个问题后,就可以安装mysql了,rpm-ivhmysql-community-*即可。开始使用servicemysqldstart命令启动mysql实例。为了验证,我们使用servicemysqldstatus来验证。输出如下:Redirectingto/bin/systemctlstatusmysqld.serviceMysqld.service-MySQLServerLoaded:loaded(/usr/lib/systemd/system/mysqld.service;enabled;vendorpreset:disabled)Active:active(running)自Mon2017-07-0315:39:02CST起;5sagoDocs:man:mysqld(8)http://dev.mysql.com/doc/refman/en/using-systemd.htmlProcess:28054ExecStart=/usr/sbin/mysqld--daemonize--pid-file=/var/run/mysqld/mysqld.pid$MYSQLD_OPTS(code=exited,status=0/SUCCESS)进程:27978ExecStartPre=/usr/bin/mysqld_pre_systemd(code=exited,status=0/SUCCESS)MainPID:28056(mysqld)CGroup:/system.slice/mysqld.service└─28056/usr/sbin/mysqld--daemonize--pid-file=/var/run/mysqld/mysqld.pidJul0315:38:57nodemastersystemd[1]:启动MySQL服务器...7月3日15:39:02nodemastersystemd[1]:启动MySQL服务器。我们在登录时使用mysql-uroot会提示我们输入密码,这个密码保存在/var/log/mysqld.log文件中,是系统自动生成的。我们可以使用cat/var/log/mysqld.log|greppassword命令找出密码,然后填写,登录,登录后修改密码。这些操作在官方文档中有详细说明,大家可以自行查看。以上内容最后如有不当之处,请指出,我会尽最大努力尽快修改。
