基于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+ 版本),当检测到密码存在安全风险(如首次登录、密码过期、管理员强制重置)时,会强制要求你先修改密码,才能执行任何数据库操作(包括查看变量)。

相关推荐
小猿姐1 小时前
实测对比:哪款开源 Kubernetes MySQL Operator 最值得用?(2026 深度评测)
数据库·mysql·云原生
qwy7152292581633 小时前
1-Docker Engine 安装前置环境配置
运维·docker·容器
倔强的石头_3 小时前
从 “存得下” 到 “算得快”:工业物联网需要新一代时序数据平台
数据库
菜菜艾4 小时前
基于llama.cpp部署私有大模型
linux·运维·服务器·人工智能·ai·云计算·ai编程
重生的黑客4 小时前
Linux开发工具:条件编译、动静态库与 make/makefile 入门
linux·运维·服务器
TDengine (老段)4 小时前
TDengine IDMP 可视化 —— 分享
大数据·数据库·人工智能·时序数据库·tdengine·涛思数据·时序数据
minji...4 小时前
Linux 线程同步与互斥(三) 生产者消费者模型,基于阻塞队列的生产者消费者模型的代码实现
linux·运维·服务器·开发语言·网络·c++·算法
.柒宇.4 小时前
nginx入门教程
运维·nginx
GottdesKrieges5 小时前
OceanBase数据库备份配置
数据库·oceanbase
w6100104665 小时前
cka-2026-ConfigMap
java·linux·cka·configmap