红帽系Linux的mysql8.x的安装和更改密码操作
红帽系列系统:
- Red Hat Enterprise Linux
- CentOS
- Fedora
- Rocky
注意: Rocky 并不是 RedHat 公司所开发和发行的Linux版本, 但其兼容红帽系Linux的生态, 故将其列入此列
MySQL的安装
本文使用的系统为Rocky 8.10, 其操作与 CentOS 8 和 RedHat 8 一样, 读者可根据自己的版本进行灵活修改代码
-
通过下方的链接地址可以直接获取MySQL官方的红帽系Linux Yum源
MySQL的官方yum源地址
复制自己需要的yum源下载链接在Linux中进行下载sudo wget https://dev.mysql.com/get/mysql84-community-release-el8-1.noarch.rpm
若未下载
wget
输入下方代码进行下载或使用curl
命令进行代替sudo yum install -y wget
-
禁用系统自带 yum 源提供的 MySQL 安装源
# Centos 8/RedHat 8/ Fedora sudo dnf module disable mysql sudo dnf module disable mysql-server # centos7 sudo yum-config-manager --disable mysql-community-server sudo yum-config-manager --disable mysql80-community
-
将下载下来的
.rpm
包进行安装sudo rpm -Uvh mysql84-community-release-el8-1.noarch.rpm
-
安装完成后安装
MySQL
服务sudo yum install mysql-server -y
启用 MySQL 服务:
启动MySQL服务:
systemctl start mysqld # 启动服务
systemctl enable mysqld # 设置开机自启
查看 MySQL 初始临时密码
在MySQL服务启动后, 日志中会给出最初始的 root 用户的临时密码
sudo grep 'temporary password' /var/log/mysqld.log
图中给出了MySQL数据库的初始密码
初始化MySQL服务
安装完成MySQL服务之后, MySQL会自带一个MySQL的初始化程序: mysql_secure_installation
, 运行此程序便可初始化MySQL
mysql_secure_installation
输入完成后先输入系统给的初始密码, 然后输入一个自己的密码
注意: 此密码要求8个字符以上, 且必须包含 数字, 大小写字母, 特殊符号
输入完成后会得到一个如上图所示的提示, 输入 Y或y
应用密码。
然后系统会询问你:
- 是否删除匿名用户, 这里选y 删除匿名用户
- 是否禁止 root 用户进行远程登录, 这里可根据自身需求选择, 作者此处选择n
- 是否删除测试数据库, 选y
- 是否现在刷新权限列表, 选y
登录MySQL并更改密码策略
使用以下代码进入数据库, 并使用密码登录
mysql -u root -p
Enter password: # 此处输入密码
登录成功后输入以下命令查看密码策略
show VARIABLES like "%password%";
得到结果:
mysql> show VARIABLES like "%password%";
+-------------------------------------------------+-----------------+
| Variable_name | Value |
+-------------------------------------------------+-----------------+
| caching_sha2_password_auto_generate_rsa_keys | ON |
| caching_sha2_password_digest_rounds | 5000 |
| caching_sha2_password_private_key_path | private_key.pem |
| caching_sha2_password_public_key_path | public_key.pem |
| default_password_lifetime | 0 |
| disconnect_on_expired_password | ON |
| generated_random_password_length | 20 |
| mysql_native_password_proxy_users | OFF |
| password_history | 0 |
| password_require_current | OFF |
| password_reuse_interval | 0 |
| report_password | |
| sha256_password_auto_generate_rsa_keys | ON |
| sha256_password_private_key_path | private_key.pem |
| sha256_password_proxy_users | OFF |
| sha256_password_public_key_path | public_key.pem |
| 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 | # 密码至少1个数字
| validate_password.policy | MEDIUM | # 密码强度
| validate_password.special_char_count | 1 | # 密码至少一个特殊符号
+-------------------------------------------------+-----------------+
24 rows in set (0.00 sec)
根据自己需求更改密码策略, 作者这里只修改了密码强度等级。
mysql> SET GLOBAL validate_password.policy='LOW';
Query OK, 0 rows affected (0.01 sec)
刷新权限
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
更改密码
使用以下命令修改密码
mysql> ALTER USER 'your_username'@'host' IDENTIFIED BY 'new_password';
更改完成后再次刷新权限, 便可使用自己设定的密码进行登录。
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)