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

相关推荐
_upupup2 小时前
Linux的调试工具——gdb/cgdb
linux·服务器
百度一下吧2 小时前
Nginx 使用手册:从安装配置到实战部署
运维·nginx
JeJe同学2 小时前
Docker镜像导入、容器启动
linux·运维·docker
Jason_zhao_MR2 小时前
Linux与实时控制如何兼得
linux·嵌入式硬件·机器人·工业控制
回眸&啤酒鸭2 小时前
【回眸】自动化白盒测试落地实战指南
运维·自动化·log4j
倔强的石头_3 小时前
聊聊金仓KFS:一款把数据同步软件做扎实的产品
数据库
闲云野鹤在人间3 小时前
MySQL|从理论、安装、备份到主从复制、MHA高可用详解
linux·运维·数据库·mysql·云计算
禾小西3 小时前
Redis:从两大维度和三大主线建立知识体系
数据库·redis·缓存
禾小西4 小时前
Redis 数据结构:快速的 Redis 有哪些慢操作?
数据结构·数据库·redis
一个风轻云淡4 小时前
GCC 和 GDB命令简单解读
java·linux·前端