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 从日志中查找数据库密码(解释为什么从日志找密码)
- MySQL 8.0 强制安全策略:不再是空密码
旧版 MySQL 5.6/5.7 早期:root 初始密码是空,直接
mysql -uroot就能进。新版 MySQL 8.0 / 官方 RPM 安装:禁止空密码 ,安装程序会自动生成一个随机强密码。
这个密码不会显示在屏幕上 ,只会写入错误日志。
- 安装过程是自动化的,无法交互输入密码
yum /dnf/apt 安装属于非交互式安装。
安装脚本不能停下来问你 "请设置 root 密码"。
所以系统只能:
自动生成强密码
写入日志
让你自己去日志里找,然后登录修改
日志路径:/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+ 版本),当检测到密码存在安全风险(如首次登录、密码过期、管理员强制重置)时,会强制要求你先修改密码,才能执行任何数据库操作(包括查看变量)。