Linux CentOS 使用Yum源安装MySQL 5.7

 2016年10月29日    331     声明


在CentOS(Fedora、RedHat)系统中,可以使用yum install mysql命令来安装MySQL,但所安装的MySql版本一般都较旧,所以更推荐通过源码编译安装或下载最新rpm安装包进行安装。

  1. 添加MySQLYum
  2. 选择一个发行系列
  3. 使用Yum安装MySQL
  4. 启动MySQL服务器
  5. 加固MySQL安全(仅MySQL5.6适用)

MySQL的Yum源提供了RPM安装包,包括MySQL服务端、客户端、及Linux平台的其它组件。这些安装包同样可以用于升级或替换第三方已安装的MySQL。

MySQL的Yum源支持以下Linux平台:

  • 基于EL5-、EL6-、EL7-的平台(如 Red Hat Enterprise Linux、Oracle Linux 和 CentOS)
  • Fedora 23 和 24

1. 添加MySQLYum

首先,添加MySQLYum源到系统源列表中:

  1. 打开MySQLYum源下载页: http://dev.mysql.com/downloads/repo/yum/,选择并下载你所用系统适用的发行包。
  2. 使用以下命令安装下载的发行包

如,我下载的发行包为mysql57-community-release-el6-9.noarch.rpm,安装命令如下:

$ sudo rpm -Uvh mysql57-community-release-el6-9.noarch.rpm

注意:安装发行包后,如果系统执行yum update命令(或在dnf-enabled的系统中执行dnf upgrade命令)后,会自动升级系统中的MySQL包,并会自动替换所有的本地第三方包。


2. 选择一个发行系列

使用MySQLYum源时,默认会安装MySQL最新的GA(General Availability,正式发布)版本。如果正要使用最新的版本,请跳过本步骤,直接查看使用Yum安装MySQL

MySQLYum源的内部,不同的发行系列对应了MySQL社区服务器的不同资源子节点。子节点默认为最新的正式版本(当前为 5.7),而其它资源子节点(如5.5、5.6等)默认是不可用的。

可以通过以下命令,查询子资源是否可用(在dnf-enabled的系统中使用dnf命令替代yum):

yum repolist all | grep mysql
mysql-connectors-community        MySQL Connectors Community     enabled:     24
mysql-connectors-community-source MySQL Connectors Community - S disabled
mysql-tools-community             MySQL Tools Community          enabled:     40
mysql-tools-community-source      MySQL Tools Community - Source disabled
mysql-tools-preview               MySQL Tools Preview            disabled
mysql-tools-preview-source        MySQL Tools Preview - Source   disabled
mysql55-community                 MySQL 5.5 Community Server     disabled
mysql55-community-source          MySQL 5.5 Community Server - S disabled
mysql56-community                 MySQL 5.6 Community Server     disabled
mysql56-community-source          MySQL 5.6 Community Server - S disabled
mysql57-community                 MySQL 5.7 Community Server     enabled:    146
mysql57-community-source          MySQL 5.7 Community Server - S disabled
mysql80-community                 MySQL 8.0 Community Server     disabled
mysql80-community-source          MySQL 8.0 Community Server - S disabled

如上所示,因为笔者安装5.7版本Yum源,所以默认启用的就是5.7版本。

如果要安装最新的发行版,则不需要其它配置。而要指定安装一个早期版本,则需要在安装前禁用最新发生版,并启用指定要安装的版本。可以通过修改/etc/yum.repos.d/mysql-community.repo文件实现,该文件是一个指定子资源的入口:

[mysql-connectors-community]
name=MySQL Connectors Community
baseurl=http://repo.mysql.com/yum/mysql-connectors-community/el/6/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

如上所示,默认启用的是最新的5.7版本。如果要修改配置,可以通过编辑enabled配置节点实现,enable=0表示禁用该子资源,而enabled=1表示启用该子资源。

例如,如果需要启用5.6版本的源,就需要将如下所示的5.6版本源设置为enabled=1并将5.7版本源设置为enabled=0

# Enable to use MySQL 5.6
[mysql56-community]
name=MySQL 5.6 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/6/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

配置完成后,可以使用前面所示的yum repolist enabled | grep mysql命令检查配置是否正确。


3. 使用Yum安装MySQL

使用以下命令安装MySQL(在dnf-enabled的系统中使用dnf命令替代yum):

$ sudo yum install mysql-community-server

以上命令用于安装MySQL的服务端模块,安装其它模块命令格式也类似。


4. 启动MySQL服务器

启动MySQL服务命令如下:

$ sudo service mysqld start

启动时会依次输出以下信息:

Initializing MySQL database:       [  OK  ]
Installing validate password plugin:    [  OK  ]
Starting mysqld:                        [  OK  ]

可以通过以下命令检查MySQL的运行状态:

$ sudo service mysqld status

在5.7版本的MySQL启动时,因为数据目录是空的,所以会有以下操作:

  1. 服务器初始化
  2. 在数据目录生成一个SSL证书和key文件
  3. validate_password插件安装并启用
  4. 创建一个超级管理帐号'root'@'localhost'。管理的密码会保存在错误日志文件中,可以通过以下命令查看:
    $ sudo grep 'temporary password' /var/log/mysqld.log

    可以通过以下命令并使用自动生成的临时密码登录,然后修改为一个自定义密码:

    $ mysql -u root -p 

    密码修改:

    $ ALTER USER 'root'@'localhost' IDENTIFIED BY 'newPassword';

注意:MySQL的validate_password插件是默认安装的。这要求MySQL密码至少包含一个大写字母、一个小写字母、一个数字和一个特殊字符,并且总密码长度至少为8个字符。


5. 加固MySQL安全(仅MySQL5.6适用)

mysql_secure_installation程序可以保证一些重要操作的安全性,如:修改root用户的密码、删除匿名用户等。如果安装是MySQL 5.6,应该保证始终运行该程序:

$ mysql_secure_installation