在基于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.log For 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/mysqld For SLES: /etc/init.d/mysql
|
Systemd service | For RHEL, Oracle Linux, CentOS or Fedora platforms: mysqld For 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官网,并实践安装验证后书写