CentOS 7 下安装 MySQL 8.0 详细教程
MySQL版本 :8.0.x
操作系统 :CentOS 7(演示环境为 CentOS Linux release 7.9.2009)
安装方式:MySQL Yum 仓库
前置要求:安装之前先确保没有 MySQL 服务正在运行,建议在没有安装过 MySQL 的机器上进行全新安装。
目录
- 确认系统版本
- [添加 MySQL Yum 源](#添加 MySQL Yum 源)
- 选择发布系列
- [安装 MySQL](#安装 MySQL)
- [启动 MySQL 服务器](#启动 MySQL 服务器)
- [查看 MySQL 服务状态](#查看 MySQL 服务状态)
- 开启自启动
- [登录 MySQL](#登录 MySQL)
- 修改密码
1. 确认系统版本
登录系统并切换至 root 账号(否则执行命令时需要用 sudo 命令),在终端中运行以下命令查看系统版本:
bash
cat /etc/redhat-release
输出示例:
CentOS Linux release 7.9.2009 (Core)
2. 添加 MySQL Yum 源
2.1 访问 MySQL 开发者专区
2.2 根据当前系统选择对应的发布包
发布包命名规则:
{mysql80}-community-release-{platform}-{version-number}.noarch.rpm
| 字段 | 含义 |
|---|---|
{mysql80} |
MySQL 版本号,默认是 MySQL 8.0 版本 |
{platform} |
平台(系统)号,用来描述系统的版本 |
{version-number} |
MySQL 仓库配置 RPM 包的版本号 |
示例 :mysql80-community-release-el7-10.noarch.rpm
el7:el是 Enterprise Linux 的缩写,7表示 Linux 大版本号(el6= Linux 6,el7= Linux 7,el8= Linux 8,el9= Linux 9,fc= Fedora)el7-10:表示 MySQL 仓库配置 RPM 包的第 10 次更新
选择方式 :针对当前演示系统 Linux 7 以及 MySQL 8.0,选择对应 RPM 包的最近一次更新,下载 mysql80-community-release-el7-10.noarch.rpm 即可。
其他版本 RPM 包可通过 http://repo.mysql.com/ 查找。
2.3 下载后上传到 Linux 服务器
安装 rz 工具以支持拖拽上传:
bash
yum -y install lrzsz
上传完成后查看是否成功:
bash
ll
输出示例:
-rwxrw-rw-. 1 root root 11472 Aug 25 01:12 mysql80-community-release-el7-10.noarch.rpm
2.4 安装发布包
bash
yum -y install mysql80-community-release-el7-10.noarch.rpm
输出示例(省略部分):
Loaded plugins: fastestmirror, langpacks
Examining mysql80-community-release-el7-10.noarch.rpm: mysql80-community-release-el7-10.noarch
Marking mysql80-community-release-el7-10.noarch.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package mysql80-community-release.noarch 0:el7-10 will be installed
--> Finished Dependency Resolution
...
Installed:
mysql80-community-release.noarch 0:el7-10
Complete!
2.5 检查是否成功添加 MySQL Yum 源
bash
yum repolist enabled | grep mysql.*-community
输出示例:
mysql-connectors-community/x86_64 MySQL Connectors Community 227
mysql-tools-community/x86_64 MySQL Tools Community 100
mysql80-community/x86_64 MySQL 8.0 Community Server 426
3. 选择发布系列
查看所有可用的 MySQL 仓库:
bash
yum repolist all | grep mysql
确认以下三个仓库为 enabled(启用)状态即可:
mysql80-community/x86_64mysql-connectors-community/x86_64mysql-tools-community/x86_64
4. 安装 MySQL
bash
yum install mysql-community-server
安装过程提示是否继续,输入 y 即可。
该命令将安装 MySQL 服务器包以及运行服务器所需的组件:
| 包名 | 说明 |
|---|---|
mysql-community-server |
服务器程序 |
mysql-community-client |
客户端包 |
mysql-community-common |
客户端和服务器常见错误消息和字符集 |
mysql-community-libs |
共享客户端库 |
输出示例(省略部分):
Installed:
mysql-community-server.x86_64 0:8.0.34-1.el7
Dependency Installed:
mysql-community-client.x86_64 0:8.0.34-1.el7
mysql-community-client-plugins.x86_64 0:8.0.34-1.el7
mysql-community-common.x86_64 0:8.0.34-1.el7
mysql-community-icu-data-files.x86_64 0:8.0.34-1.el7
mysql-community-libs.x86_64 0:8.0.34-1.el7
Complete!
5. 启动 MySQL 服务器
bash
systemctl start mysqld
6. 查看 MySQL 服务状态
bash
systemctl status mysqld
输出示例:
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2023-08-29 00:39:04 PDT; 2min 6s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Main PID: 4107 (mysqld)
Status: "Server is operational"
Tasks: 37
CGroup: /system.slice/mysqld.service
└─4107 /usr/sbin/mysqld
服务管理命令速查:
bash
systemctl stop mysqld # 停止
systemctl start mysqld # 启动
systemctl restart mysqld # 重启
systemctl status mysqld # 查看状态
7. 开启自启动
bash
# 设置自启动
systemctl enable mysqld
# 查看自启动状态
systemctl list-unit-files | grep mysqld
输出示例:
mysqld.service enabled
8. 登录 MySQL
首次安装成功后,MySQL 会把 root 用户的默认密码保存在错误日志中。
查看默认密码:
bash
grep 'temporary password' /var/log/mysqld.log
输出示例:
2023-08-25T08:32:10.905479Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: IRDMJQ_.v566
使用密码登录:
bash
mysql -uroot -p
输出示例:
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.34 MySQL Community Server - GPL
mysql>
9. 修改密码
提示 :
validate_password组件默认安装,密码策略要求至少包含 1 个大写字母、1 个小写字母、1 个数字和 1 个特殊字符,总长度至少为 8 个字符。
9.1 查看默认密码策略
密码策略分为 LOW、MEDIUM(默认)和 STRONG,分别用 0、1(默认)、2 表示。
LOW:只校验密码长度,最小为 8MEDIUM:校验长度 + 大小写 + 数字 + 特殊字符STRONG:在 MEDIUM 基础上增加字典检查
相关系统变量:
validate_password.policy:密码策略validate_password.length:密码长度限制
sql
-- 查看当前密码策略
SHOW VARIABLES LIKE 'validate_password.policy';
-- 输出:MEDIUM
-- 查看当前密码长度限制
SHOW VARIABLES LIKE 'validate_password.length';
-- 输出:8
9.2 设置简单密码(开发环境)
sql
-- 策略设置为 LOW
SET GLOBAL validate_password.policy=0;
-- 密码长度最少为 4 位(系统限制不能小于 4 位)
SET GLOBAL validate_password.length=4;
9.3 设置新密码
sql
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
或使用符合默认策略的强密码:
sql
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Qs1!Ed3#';
9.4 恢复密码策略
sql
-- 恢复密码策略为 MEDIUM
SET GLOBAL validate_password.policy=1;
-- 恢复密码长度限制
SET GLOBAL validate_password.length=8;
验证设置:
sql
SHOW VARIABLES LIKE 'validate_password.policy';
SHOW VARIABLES LIKE 'validate_password.length';
最后,用新密码重新登录 MySQL 即可。
相关链接汇总
| 说明 | 链接 |
|---|---|
| MySQL 安装程序下载(Windows) | https://dev.mysql.com/downloads/ |
| MySQL Yum 仓库下载(CentOS) | https://dev.mysql.com/downloads/repo/yum |
| MySQL RPM 包仓库 | http://repo.mysql.com/ |
| MySQL systemd 文档 | http://dev.mysql.com/doc/refman/en/using-systemd.html |