在基于RPM的Linux版本上安装MySQL的推荐方式是使用Oracle官方提供的RPM包,可以从两个地方获取到MySql社区版:
-
MySQL软件仓库
-
从MySQL开发者社区(本文使用的软件的下载地址)下载MySQL
提示
对于其它软件发布方提供的MYSQL的RPM发布包,这些包可能与Oracle官方提供的有所差异,比如官方提供的特性、性能以及一些约定,如交互式安装。这些包的安装方式因此可能并不适宜使用本文的安装步骤。
如果想使用RPM迁移或升级到Oracle官方发布版,参考此处,或者使用官方的YUM仓库升级指导或者SLES仓库升级指导
MySql RPM 包内容如下:
| 社区版包名 | 商业版包名 | 描述 |
|---|---|---|
| mysql-community-server | mysql-commercial-server | MySQL数据库 |
| mysql-community-client | mysql-commercial-client | MySQL客户端程序和工具 |
| mysql-community-common | mysql-commercial-common | 数据库和客户端工共文件 |
| mysql-community-devel | mysql-commercial-devel | 客户端开发头文件和库文件 |
| mysql-community-libs | mysql-commercial-libs | 共享客户端库文件 |
| mysql-community-libs-compat | mysql-commercial-libs-compat | 共享Mysql预安装性能库文件 |
| mysql-community-embedded | mysql-commercial-embedded | MySQL内置库文件 |
| mysql-community-embedded-devel | mysql-commercial-embedded-devel | 内置MySQL开发头文件 |
| mysql-community-test | mysql-commercial-test | 数据库服务器调试工具集 |
RPM包命名规则如下:
packagename-version-distribution-arch.rpm
eg: mysql-community-server-5.7.33-1.el7.x86_64.rpm
packagename: mysql-community-server
version: 5.7.33
distribution: 1.el7 Linux发布的版本
architecture: x86_64 CPU架构
| Linux发布版编号说明 | 使用情况 |
|---|---|
| el{version}: Enterprise Linux主要版本,如el8 | EL6, EL7, EL8,如红帽Enterprise Linux、Centos |
| sles12 | SUSE Linux Enterprise Server 12 |
RPM包之间有依赖关系,建议直接下载捆绑包,里面包含了上表中的所有包,如下图圆框中的选项:

Mysql标准安装,需要安装mysql-community-server,mysql-community-client,mysql-community-libs,mysql-community-common,mysql-community-libs-compat。

如上图,将下载的捆绑包mysql-5.7.33-1.el7.x86_64.rpm-bundle.tar解压出来,最好是解压到一个新的文件夹中,确保文件夹中没有与需要的RPM包名相近的安装包,然后使用如下命令安装:
$ sudo yum install mysql-community-{server,client,common,libs}-* mysql-5.*
以上标准安装结束之后,会在系统创建相关文件,清单如下:
| Files or Resources | Location |
|---|---|
| Client programs and scripts | /usr/bin |
| mysqld server | /usr/sbin |
| Configuration file | /etc/my.cnf |
| Data directory | /var/lib/mysql |
| Error log file | For RHEL, Oracle Linux, CentOS or Fedora platforms: /var/log/mysqld.logFor SLES: /var/log/mysql/mysqld.log
|
Value of secure_file_priv
|
/var/lib/mysql-files |
| System V init script | For RHEL, Oracle Linux, CentOS or Fedora platforms: /etc/init.d/mysqldFor SLES: /etc/init.d/mysql
|
| Systemd service | For RHEL, Oracle Linux, CentOS or Fedora platforms: mysqldFor SLES: mysql
|
| Pid file | /var/run/mysql/mysqld.pid |
| Socket | /var/lib/mysql/mysql.sock |
| Keyring directory | /var/lib/mysql-keyring |
| Unix manual pages | /usr/share/man |
| Include (header) files | /usr/include/mysql |
| Libraries | /usr/lib/mysql |
| Miscellaneous support files (for example, error messages, and character set files) | /usr/share/mysql |
安装结束之后,会创建一个mysql用户以及一个mysql组。然而,并不会自动运行MySQL,在红帽Enterprise Linux、Centos、Oracle Linux和Fedora系统做,使用如下命令启动:
$ sudo service mysqld start
SLES系统的启动命令是:
$ sudo service mysql start
如果系统使用了systemd,可以使用标准的stop、start、status、restart管理MySQL。
在初始化启动MySQL的时候,发生了如下事情:
- 服务器初始化
- SSL证书和key被生成,存储在data目录
-
validate_password被安装和启用 - 超级管理员账户被创建:
root@localhost。它的密码被创建并记录在日志文件中,使用如下命令查看:$ sudo grep 'temporary password' /var/log/mysqld.log --适用于RHEL, Oracle Linux, CentOS 以及 Fedora $ sudo grep 'temporary password' /var/log/mysql/mysqld.log --适用于 SLES
然后更改密码:
$ mysql -uroot -p
mysql> 输入上一步获取到的密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
mysql的密码策略是:至少一个大写字符、一个小写字符、一个数字、一个特殊字符然后总长度至少8位
如果安装过程出现问题,在日志文件/var/log/mysqld.log查看调试日志。
P.S. 本文翻译自MySQL官网,并实践安装验证后书写