你的位置:首页 > 操作系统

[操作系统]在CentOS 7上安装MySQL数据库


现在,不使用数据库的软件,还真不能称其为软件,只能称作程序。在Windows平台下,MSSQLServer已深入人心,根深蒂固。但是在Linux平台下,取而代之的是MySQL,所以下面我就如何在Linux平台下安装MySQL做了一些尝试。

一、安装与配置

1、下载必需的MySQL软件包,我们可以去MySQL官网找到下载页面,由于我目前使用的Linux系统发行版为CentOS 7,那么我就可以通过Yum包管理器来进行安装。首先,应下载MySQL Yum安装源,下载地址为:http://dev.mysql.com/downloads/repo/yum/,如果是其它发行版的系统,在该页面的左侧导航栏即有相应的包管理器链接。

2、在Yum安装源的下载页面里面,我看到有很多版本的安装源,但是却没有一款是“For CentOS”的,那是不是就安装不了呢?当然不是。CentOS是由Red Hat Enterprise Linux(简称RHEL)依照开放源代码规定发布的源代码所编译而成,所以RHEL版本的安装源也同样适用CentOS。那么下载页这么多“For RHEL”的版本,到底CentOS 7对应的是RHEL的哪个版本呢?其实这个问题不难解决,我们只要知道CentOS的发布历史就可以知道它对应的是哪个RHEL版本了,CentOS的发布历史可以在维基百科的CentOS词条中找到。所以,CentOS 7对应RHEL 7,那么我下载这个源包就可以了。

3、开始安装安装源。

sudo rpm -Uvh mysql-community-release-el7-5.noarch.rpm

4、查找本机上的MySQL 安装源列表。

yum repolist all | grep mysql

这个操作可能会比较慢,耐心等待吧。待查找完毕,在我的机子上显示如下图:


从上图可以看出,有3个安装源是“enabled”,说明这3个安装源的软件包将会被安装。但是,如果我们由于某种原因,需要安装指定版本的MySQL,那么还需要修改MySQL的安装源配置文件/etc/yum.repos.d/mysql-community.repo。查看该文件可以看到如下内容:


从第11、19、27行我们可以看到有个“enable”选项,它就是控制我们到底要安装哪个版本的MySQL的,设为0表示不使用这个源,反之表示使用这个源。由于目前最新发布版也就是5.6版,所以我无需修改安装源配置文件。

5、安装MySQL

sudo yum install mysql-community-server

6、启动MySQL服务器

sudo service mysqld start

检查MySQL服务器状态:

sudo service mysqld status

接着我们可以看到绿色高亮显示的部分,表示服务器已处于正在运行状态。


如果需要停止MySQL服务器:

sudo service mysqld stop

7、启动完之后我们需要进行安全配置:

mysql_secure_installation

接着便会提示我进行一系列的安全设置:

(1)设置MySQL的root用户密码。由于初次安装MySQL时root的密码为空,所以当提示我们输入当前root密码时,我们应直接敲回车键以表示空。然后根据提示输入root密码。


(2)接着提示我们是否移除匿名用户,这个当然是YES。


(3)接着提示是否不允许root用户远程登录,根据上方的提示说root用户只应从本地登录,我选择YES以不允许root用户远程登录,当然如果你有这方面的需要,也可以允许root用户远程登录。


(4)最后提示是否移除“test”数据库,并重新加载权限表。


二、维护

1、安装MySQL其它可选组件

(1)首先,我们应找出哪些是没有安装的组件,MySQL官方的快速安装指南里面说是执行下面这条命令:

yum --disablerepo=\* --enablerepo='mysql*-community*' list available

这个命令看起来怎么那么不顺眼呢?其实这个命令的原型是这样的:

yum [options] list available

至于“--disablerepo=\*”是什么意思,网上有人说这是告诉Yum不使用“\”目录下的所有资源,那么这个“\”目录是哪个目录呢?最终各种无果。

(2)待显示出所有可用的包之后,执行Yum的安装命令即可。

(3)更新MySQL及其组件:

sudo yum update mysql-server

参考文献
  • http://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/