MySQL 8.0 默认使用 caching_sha2_password 提升安全性,可通过检查用户 plugin 字段确认加密方式,推荐使用 ALTER USER 命令将用户修改为 sha256_password 加密,同时设置全局密码策略为 STRONG 以强制复杂密码,并在 my.cnf 中配置 default_authentication_plugin 等参数确保新用户默认启用强加密,最后重启服务生效,需注意客户端驱动兼容性问题。
MySQL 从 8.0 版本开始,默认使用 caching_sha2_password 作为默认的认证插件,这是一种更安全的密码加密方式。如果你希望确保 MySQL 使用强密码加密机制,可以通过以下步骤进行配置。
1. 检查当前用户的认证插件
登录 MySQL 后,执行以下命令查看用户使用的认证方式:
SELECT user, host, plugin FROM mysql.user;
如果 plugin 字段显示为 mysql_native_password,说明使用的是旧版加密方式;如果是 caching_sha2_password 或 sha256_password,则已启用更强的加密。
2. 修改用户使用 SHA-256 加密(推荐)
如果你想为特定用户启用 SHA-256 加密,可以使用如下命令:
ALTER USER ‘用户名’@’主机’ IDENTIFIED WITH sha256_password BY ‘你的密码’;
例如:
ALTER USER ‘root’@’localhost’ IDENTIFIED WITH sha256_password BY ‘StrongPass123!’;
该方式支持高强度密码加密,但要求客户端支持 ssl 或者通过 RSA 密钥进行安全传输(适用于远程连接)。
3. 启用全局密码加密策略
MySQL 支持设置密码强度策略,增强安全性:
SET GLOBAL validate_password.policy = STRONG;
同时可检查当前策略:
SHOW VARIABLES LIKE ‘validate_password%’;
这样能强制用户设置包含大小写字母、数字和特殊字符的复杂密码,提升整体安全性。
4. 配置 my.cnf 启用安全加密
编辑 MySQL 配置文件(通常位于 /etc/my.cnf 或 /etc/mysql/mysql.conf.d/mysqld.cnf),在 [mysqld] 段添加:
[mysqld]
default_authentication_plugin = caching_sha2_password
sha256_password_private_key_path = /path/to/private_key.pem
sha256_password_public_key_path = /path/to/public_key.pem
保存后重启 MySQL 服务:
sudo systemctl restart mysql
这将确保新创建的用户默认使用 SHA-256 加密方式。
基本上就这些。只要合理配置认证插件和密码策略,MySQL 的密码加密就能达到较高安全水平。注意:客户端兼容性需留意,部分老版本驱动可能不支持新的加密方式。