MySQL零基础入门(二)

CentOS 7 下安装 MySQL 8.0 详细教程

MySQL版本 :8.0.x

操作系统 :CentOS 7(演示环境为 CentOS Linux release 7.9.2009)

安装方式:MySQL Yum 仓库

前置要求:安装之前先确保没有 MySQL 服务正在运行,建议在没有安装过 MySQL 的机器上进行全新安装。


目录

  1. 确认系统版本
  2. [添加 MySQL Yum 源](#添加 MySQL Yum 源)
  3. 选择发布系列
  4. [安装 MySQL](#安装 MySQL)
  5. [启动 MySQL 服务器](#启动 MySQL 服务器)
  6. [查看 MySQL 服务状态](#查看 MySQL 服务状态)
  7. 开启自启动
  8. [登录 MySQL](#登录 MySQL)
  9. 修改密码

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

  • el7el 是 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_64
  • mysql-connectors-community/x86_64
  • mysql-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 查看默认密码策略

密码策略分为 LOWMEDIUM(默认)和 STRONG,分别用 01(默认)、2 表示。

  • LOW:只校验密码长度,最小为 8
  • MEDIUM:校验长度 + 大小写 + 数字 + 特殊字符
  • 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
相关推荐
kali-Myon2 小时前
某校园门禁系统高危 SQL 注入漏洞挖掘复盘
数据库·sql·安全·web安全
程序员在囧途3 小时前
likeadmin-api API 中转站怎么做统一报价?从 /pricing、/user/balance 到 task_id 回执的落地方法
运维·服务器·数据库·likeadmin-api·api中转站·token计费
龙石数据4 小时前
MySQL 全量同步到 Hive 怎么做?三步配置教程
数据库·hive·mysql·数据治理·数据中台
程序员在囧途5 小时前
likeadmin-api API 算力超市怎么做供应商切换?统一鉴权、task_id 和 callback_url 才能稳交付
java·服务器·数据库·开放api·likeadmin-api·api算力超市
数据工匠老o5 小时前
连接池配置实战——从“连不上“到“连太多“的完整排查指南
数据库
一只专注api接口开发的技术猿6 小时前
电商评论自动化监控与情感数据分析完整落地教程(附可直接运行 Python 代码)
大数据·数据库·python·数据分析·自动化
hh真是个慢性子6 小时前
GaussDB Inside 2.23.01.280 集中式一主一备安装
数据库·database·gaussdb·国产数据库·高斯
沉静的小伙6 小时前
Spring事务
java·数据库·spring
大侠锅锅6 小时前
第 3 篇:节点自动化纳管——从裸机到可管理的 7 步安装流水线
数据库·自动化·边缘计算·iot