基于Linux中的数据库操作——下载与安装(1)

1.安装MySQL的YUM仓库

bash 复制代码
dnf install https://dev.mysql.com/get/mysql84-community-release-el10-2.noarch.rpm

这里可以去官网上下载任何版本,官网地址:MySQL :: MySQL Downloads

2.安装数据库

bash 复制代码
dnf install mysql-community-server -y

3.等待安装,安装成功后,启动数据库

bash 复制代码
systemctl start mysqld

成功启动后,查看状态是否成功启动

bash 复制代码
[root@bogon ~]# systemctl status mysqld
● mysqld.service - MySQL Server
     Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; preset: disabled)
     Active: active (running) since Sun 2026-03-22 14:55:17 CST; 5s ago
       Docs: man:mysqld(8)
             http://dev.mysql.com/doc/refman/en/using-systemd.html
    Process: 13665 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
   Main PID: 13693 (mysqld)
     Status: "Server is operational"
      Tasks: 35 (limit: 12066)
     Memory: 426.4M
        CPU: 2.365s
     CGroup: /system.slice/mysqld.service
             └─13693 /usr/sbin/mysqld

Mar 22 14:55:14 bogon systemd[1]: Starting MySQL Server...
Mar 22 14:55:17 bogon systemd[1]: Started MySQL Server.

4.登录数据库

4.1 从日志中查找数据库密码(解释为什么从日志找密码)

  1. MySQL 8.0 强制安全策略:不再是空密码
  • 旧版 MySQL 5.6/5.7 早期:root 初始密码是空,直接 mysql -uroot 就能进。

  • 新版 MySQL 8.0 / 官方 RPM 安装:禁止空密码 ,安装程序会自动生成一个随机强密码

  • 这个密码不会显示在屏幕上 ,只会写入错误日志

  1. 安装过程是自动化的,无法交互输入密码
  • yum /dnf/apt 安装属于非交互式安装

  • 安装脚本不能停下来问你 "请设置 root 密码"。

  • 所以系统只能:

    1. 自动生成强密码

    2. 写入日志

    3. 让你自己去日志里找,然后登录修改

日志路径:/var/log/mysqld.log

查找临时密码:

bash 复制代码
grep 'temporary password' /var/log/mysqld.log
bash 复制代码
[root@bogon ~]# grep 'temporary password' /var/log/mysqld.log
2026-03-22T06:53:50.418171Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: ;wudsmQpD4LD

我的临时密码就是这里的 ;wudsmQpD4LD,注意这个" ;"也是密码的一部分

4.2 修改密码

目前不能修改为123456简单密码,需要大小写英文,特殊符号和数字组成的密码才能修改。

bash 复制代码
alter user 'root'@'localhost' identified by 'MySQL@123';

查看当前密码策略

bash 复制代码
show variables like 'validate_password%';

+-------------------------------------------------+--------+
| Variable_name                                   | Value  |
+-------------------------------------------------+--------+
| validate_password.changed_characters_percentage | 0      |
| validate_password.check_user_name               | ON     |
| validate_password.dictionary_file               |        |
| validate_password.length                        | 8      |
| validate_password.mixed_case_count              | 1      |
| validate_password.number_count                  | 1      |
| validate_password.policy                        | MEDIUM |
| validate_password.special_char_count            | 1      |
+-------------------------------------------------+--------+

变量名称说明:

  • validate_password.length=8:表示密码的长度至少 8 位

  • validate_password.mixed_case_count=1:表示密码字符串中至少包含一个大写字母

  • validate_password.number_count=1:表示密码字符器中至少包含一个数字

  • validate_password.policy=MEDIUM:表示当前的密码策略为中级,要求就是长度至少 8 位,包含至少一个大字字母、数字、特殊符号。其值可以有:LOW、MEDIUM、HIGHT

  • validate_password.special_char_count=1:表示密码字符器中至少包含一个特殊符号

所以我们需要进行修改这个密码策略

bash 复制代码
set global validate_password.length=3;

改成简单的密码策略即可,下图是我自己修改后的

bash 复制代码
mysql> show variables like 'validate_password%';
+-------------------------------------------------+-------+
| Variable_name                                   | Value |
+-------------------------------------------------+-------+
| validate_password.changed_characters_percentage | 0     |
| validate_password.check_user_name               | ON    |
| validate_password.dictionary_file               |       |
| validate_password.length                        | 4     |
| validate_password.mixed_case_count              | 0     |
| validate_password.number_count                  | 1     |
| validate_password.policy                        | LOW   |
| validate_password.special_char_count            | 0     |
+-------------------------------------------------+-------+

接着修改密码为123456

bash 复制代码
alter user 'root'@'localhost' identified by '123456';

注意:若要打开密码策略,需要修改一次密码后才能打开,因为这是 MySQL 的安全机制(尤其是 8.0+ 版本),当检测到密码存在安全风险(如首次登录、密码过期、管理员强制重置)时,会强制要求你先修改密码,才能执行任何数据库操作(包括查看变量)。

相关推荐
是店小二呀7 分钟前
鸿蒙PC_Dart-Sass-ohos适配全记录
linux·运维·windows
智能运维指南6 小时前
代码管理软件如何融入 DevOps 工具链?全链路联通的 5 个关键点
运维·devops·信创适配·嘉为蓝鲸
两点王爷6 小时前
PostgreSQL 常用 SQL 语句与 GIS 相关函数详解
数据库·后端
两点王爷7 小时前
PostgreSQL 好用又独特的特性与空间函数
数据库
充电zcx7 小时前
Linux:4:开发工具详解
linux·运维·服务器
梦帮科技7 小时前
AI 音乐产品的发布工程:验证门、数据发布、回滚与生产运维纪律
数据结构·数据库·架构·node.js·音视频·动态规划·推荐算法
TDengine (老段)8 小时前
TDengine 常见问题 TOP3
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
gongfeng300010 小时前
福州企业级AI自动化获客解决方案品牌梳理与适用场景分析
运维·人工智能·自动化·g-claw ai员工
码农客栈11 小时前
linux 交叉编译tslib
linux
螺蛳粉 螺蛳粉11 小时前
MySQL 分布式集群系列 · 第五篇——全方位对比:NDB、MGR、主从复制、分库分表怎么选?
数据库·分布式·mysql