更新系统

yum update -y

清理 YUM 软件包管理器的缓存
(包括软件包文件和元数据,可以释放磁盘空间并删除旧的缓存数据)

yum clean all

添加 MySQL Yum Repository: MySQL 提供了官方的 Yum 存储库,可以通过它安装最新的 MySQL 版本。运行以下命令添加 MySQL 存储库:

yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-9.noarch.rpm

重新生成 YUM 软件包缓存,以便获取最新的软件包列表和相关信息

yum makecache
备注:安装指定版本
# 查看可用版本
yum list available mysql-community-server --showduplicates
# 安装指定版本
yum install mysql-community-server-<version>.x86_64 --nogpgcheck
# yum install mysql-community-server-8.0.33-1.el7 --nogpgcheck

安装 MySQL 服务器: 添加存储库后,使用以下命令安装 MySQL 服务器:

yum install -y mysql-server --nogpgcheck

启动 MySQL 服务: 安装完成后,启动 MySQL 服务并设置其在启动时自动启动:

systemctl start mysqld
systemctl enable mysqld

MySQL 在首次启动时会生成一个临时的默认密码,你运行以下命令来查找默认密码:

grep 'temporary password' /var/log/mysqld.log

运行以下命令以执行 MySQL 的安全设置向导,创建新的 root 密码并完成一些基本的安全配置:

mysql_secure_installation

按照提示操作:mysql_secure_installation脚本将会依次提示你进行一些设置。这些设置通常包括以下内容:

  • 是否设置 MySQL root 用户密码。
  • 是否删除匿名用户账户。
  • 是否禁止远程 root 用户登录。
  • 是否删除测试数据库。
  • 是否刷新权限表以使更改生效。

根据提示输入选项:按照提示输入 y 或 n 来选择你想要执行的操作。如果你不确定某个选项的含义,脚本会提供一些说明,你可以根据需要选择。
完成设置:当你完成设置后,脚本将会显示一些信息来确认你的选择。
退出 MySQL 终端,输入:exit;

登录 MySQL 服务器:

mysql -u root -p

检查字符集

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';

设置utf8mb4字符集

[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
#collation-connection = utf8mb4_unicode_ci
#注意,这个地方的connection改了的话重启直接就打不开数据库了,需要其他办法改,原理未知
init_connect='SET NAMES utf8mb4 COLLATE utf8mb4_general_ci'

重启 MySQL

systemctl restart mysqld.service

修改root密码

ALTER USER 'root'@'localhost' IDENTIFIED BY 'test123!';

报错:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
查看当前密码策略

SHOW VARIABLES WHERE Variable_name LIKE 'validate_password%';

validate_password.policy 是 MySQL 中用于指定密码强度验证策略的系统变量之一。它可以用来控制用户在创建或更改密码时需要满足的密码强度要求。这个系统变量的值是一个字符串,表示密码策略的级别。在 MySQL 5.7 及更高版本中,validate_password 插件会根据这个策略来验证密码的强度。
validate_password.policy的值以及它们的含义:
LOW : 密码要求非常宽松,只需要有一些基本的字符和长度。这个级别通常不推荐,因为密码强度较弱。
MEDIUM : 中等密码策略,要求包含大写字母、小写字母、数字和特殊字符,长度也有要求。这是一个较为常见的密码强度要求。
STRONG : 较强的密码策略,要求包含更多复杂性,如特殊字符、数字、大写和小写字母,并且更长。这是一个更高的密码安全级别。
DEFAULT or 0 : 这个是 MySQL 默认的密码策略,通常是中等密码策略。
HARD : 更高的密码策略,要求密码更长,同时包含更多特殊字符、数字和大小写字母。

validate_password.length 表示密码的最小长度。如果用户设置的密码长度不满足这个要求,MySQL 服务器会拒绝创建或更改密码。
validate_password.mixed_case_count 用于指定密码中要求的大写字母的最小数量。
validate_password.number_count 用于指定密码中要求的数字的最小数量。
validate_password.special_char_count 用于指定密码中要求的特殊字符的最小数量。特殊字符通常包括 ( ) ! @ # $ % ^ & 等。
validate_password.check_user_name 用于控制是否在密码验证过程中检查密码是否与用户名相似。如果启用了这个选项,MySQL 将会检查密码是否包含了用户名的一部分,以避免使用过于简单或易猜的密码。这个变量的值是一个布尔值(0 或 1)或者(YES/NO),默认情况下,validate_password.check_user_name 是启用的(值为 1或 YES),这意味着 MySQL 会在密码验证过程中检查密码与用户名的相似性。
validate_password.changed_characters_percentage 用于指定在修改密码时,新密码与旧密码相比至少要改变的字符百分比。这个变量控制了在修改密码时密码的变化程度。
修改密码策略

SET GLOBAL validate_password.policy = 'MEDIUM'; -- 将策略设置为中等强度
SET GLOBAL validate_password.length = 10; -- 将最小长度要求设置为 10
SET GLOBAL validate_password.mixed_case_count = 2; -- 将要求的最小大写字母数量设置为 2
SET GLOBAL validate_password.number_count = 2; -- 将要求的最小数字数量设置为 2
SET GLOBAL validate_password.special_char_count = 1; -- 将要求的最小特殊字符数量设置为 1
SET GLOBAL validate_password.check_user_name = 'NO'; -- 禁用检查密码与用户名相似性
SET GLOBAL validate_password.changed_characters_percentage = 50; -- 将要求的最小字符变化百分比设置为 50

开启远程访问

update user set user.Host='%'where user.User='root';

刷新权限

FLUSH PRIVILEGES;
posted on 2024-02-01 16:11  选词填空  阅读(21)  评论(0编辑  收藏  举报