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

相关推荐
恒创科技HK2 小时前
通用型云服务器与计算型云服务器:您真正需要哪些配置?
运维·服务器
吴佳浩 Alben3 小时前
GPU 生产环境实践:硬件拓扑、显存管理与完整运维体系
运维·人工智能·pytorch·语言模型·transformer·vllm
Oueii3 小时前
Django全栈开发入门:构建一个博客系统
jvm·数据库·python
未来龙皇小蓝3 小时前
【MySQL-索引调优】11:Group by相关概念
数据库·mysql·性能优化
播播资源4 小时前
CentOS系统 + 宝塔面板 部署 OpenClaw源码开发版完整教程
linux·运维·centos
2401_831824964 小时前
使用Fabric自动化你的部署流程
jvm·数据库·python
源远流长jerry4 小时前
在 Ubuntu 22.04 上配置 Soft-RoCE 并运行 RDMA 测试程序
linux·服务器·网络·tcp/ip·ubuntu·架构·ip
学不完的4 小时前
Docker数据卷管理及优化
运维·docker·容器·eureka
njidf4 小时前
Python日志记录(Logging)最佳实践
jvm·数据库·python