前言
本文主要讲述在 CentOS 7 下通过安装 MySQL 的 yum 软件源去安装 MySQL 8.0。
通过对 MySQL 服务器的日志的分析,获取了 MySQL 安装时生成的密码,而且还运行 Bash Shell 命令 mysql_secure_installation
更改了 MySQL 原密码,对 MySQL 进行初始化操作,在初始化操作时配置了一些基本的设置,如禁止 MySQL 服务器的远程登录、移除匿名用户等等。
MySQL 的介绍
什么是 MySQL
MySQL 是属于 Oracle 公司的一款高性能、可扩展、多平台和多种编程语言的支持,以及能处理高并发重量级的开源数据库软件。它包含服务器端和客户端,服务器端负责处理、管理并储存数据,而客户端则只负责访问 MySQL 服务器,执行对 MySQL 进行控制操作的命令。
MySQL 包含数据操作命令(DML)、数据定义语言(DDL)和数据控制语言(DCL)三种类型的命令和操作。
以上三种数据处理命令使得 MySQL 的功能得到最大化的强大。
MySQL 的生命周期
经过无数岁月的迭代开发和用户使用情况,MySQL 有几个经典的版本,其中包括 v5.5.5、v5.7.x 和 v8.0,这三个版本分别具有当时对于 MySQL 重大意义的更新升级。
版本 | 生命周期终止日期 | 划时代的更新 |
---|---|---|
5.5.x | 2018-12 | v5.5.5 首次默认数据库引擎为 InnoDB 等 |
5.7.x | 2023-10 | 开始对 JSON 格式数据的支持等 |
8.x | 2026-04 | 新增 caching_sha2_password 认证插件等 |
于上图可看出, 5.7 及其以下的 MySQL 版本都已经终止了生命周期,意味着它们不会再获得更新和 Bug 的修复,使用它们会有一定的安全风险。而 8.0 距离终止周期还有好几年,这些年将会继续获得安全更新。
为了使应用 MySQL 的程序跑得更久,最好是采用最新的 8.0 版本。
也因此,本文也采用 MySQL 8.0 为安装版本。
下载 MySQL 的 Yum 软件源仓库
一般有两个渠道下载 MySQL 社区版 RPM 仓库文件:
- 一是从官方网站
dev.mysql.com
下载; - 第二个方式是从中国国内镜像源
mirrors.tuna.tsinghua.edu.cn
下载,这里是“清华大学软件源”。
如果服务器或云服务器在境内,则选择国内镜像源下载,否则,选择从官方源下载。
从官方渠道下载
网址: https://dev.mysql.com/downloads/repo/yum/ 。
因为是CentOS 7,衍生自 RHEL 7,所以选择:Red Hat Enterprise Linux 7 / Oracle Linux 7 (Architecture Independent), RPM Package
这个下载:
yum install -y wget
cd /tmp
wget https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm
从中国镜像源下载
如果下载太慢,可尝试国内镜像: https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/ 。
与上面 mysql80-community-release-el7-11.noarch.rpm
一样的文件在国内镜像也可下载:
yum install -y wget
cd /tmp
rm -f mysql80-community-release-el7-11.noarch.rpm
wget https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql80-community-el7/mysql80-community-release-el7-11.noarch.rpm
以上文件在右边的网页中可选择最新版(当前 2023-12 的最新版是 el7-11): https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-8.0-community-el7-x86_64/ 。
当前文件的下载链接在网页的最底部。
安装软件源
cd /tmp
yum install -y mysql80-community-release-el7-11.noarch.rpm
yum clean all
yum makecache
查看 MySQL 软件源安装是否成功
yum info mysql-community-server
如果出现如下结果,则表示软件源安装成功:
Available Packages
Name : mysql-community-server
Arch : x86_64
Version : 8.0.35
Release : 1.el7
Size : 64 M
...
yum 安装 MySQL 8.0
yum install -y mysql-community-server.x86_64
启动 MySQL 服务器
# 如果这里等太久,可按键盘的 `Ctrl + c` 退出来再重新执行
systemctl start mysqld
systemctl status -l mysqld
systemctl enable mysqld
如果没发现启动时的错误,那 MySQL 就成功安装了。
获取 MySQL 的初始密码
grep 'A temporary password' /var/log/mysqld.log | tail -1 >/tmp/mysql-init-password.txt
然后到 /tmp
目录执行以下命令获取密码:
cat /tmp/mysql-init-password.txt
执行上面的命令会出现类似于下面的结果:
2023-12-16T14:56:51.328754Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 5+*MLqrsDjra
上面文本中最末尾的“5+*MLqrsDjra”就是 MySQL 生成的密码。
配置初始化
# 按需配置
mysql_secure_installation
Enter password for user root:
: 输入文件 /root/mysql-init-password.txt 里面的密码;-
New password:
:输入新密码; -
Re-enter new password:
: 确定新密码; -
Change the password for root ?
:输入n
就行; -
Remove anonymous users?
:移除匿名用户,输入y
或Y
; -
Disallow root login remotely?
:是否允许root
用户远程登录,如果你希望是的话,便输入Y
或y
,否则输入其他任意键,比如n
; -
Remove test database and access to it?
:是否移除测试数据库以及访问它,一般情况下输入y
或Y
即可; -
Reload privilege tables now?
:重载权限表,输入y
或Y
实际上相当于执行flush privileges;
命令,从而使以上的配置立即生效,而不用重启 MySQL 服务器进程。
也可以配置好后重启 MySQL。
systemctl restart mysqld
systemctl status -l mysqld
鉴于本人的相关知识储备以及能力有限,本博客的观点和描述如有错漏或是有考虑不周到的地方还请多多包涵,欢迎互相探讨,一起学习,共同进步。
本文章可以转载,但是需要说明来源出处!
本文使用的部分图片来源于网上,若是侵权,请与本文作者联系删除: admin@icxzl.com