mysql5.7 设置密码不生效的一种情况

本文介绍了当遇到MySQL中root用户密码无法设置的情况时的一种解决方案。通过修改mysql.user表中的plugin字段为mysql_native_password,可以成功设置root用户的密码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装完mysql,使用了各种方法设置root的密码,均不生效,后来网上看到

plugin字段值是auth_socket,将其改为mysql_native_password即可

mysql.user SET authentication_string=PASSWORD('1q!Qqqqq'), plugin='mysql_native_password' WHERE user='root';

 

### MySQL 5.7密码策略配置方法 在 MySQL 5.7 中,默认启用了 `validate_password` 插件,用于强制执行密码复杂度策略。为了实现弱密码策略,可以通过调整该插件的相关参数或将插件卸载。 #### 方法一:通过修改验证策略级别降低密码复杂度 MySQL 的 `validate_password` 插件提供了三种不同的密码策略级别: - **0 (LOW)**: 只需满足最小长度要求。 - **1 (MEDIUM)**: 需要至少一个大写字母、一个小写字母、一个数字和一个特殊字符,并满足最小长度要求。 - **2 (STRONG)**: 基于字典文件进一步增强密码安全性[^4]。 可以将策略级别设置为 `0` 来启用最低级别的密码复杂度要求。具体操作如下: 1. 登录到 MySQL 数据库: ```bash mysql -u root -p ``` 2. 修改 `validate_password_policy` 参数值为 `0`: ```sql SET GLOBAL validate_password.policy=0; ``` 3. (可选)根据需求调整其他相关参数,例如密码最小长度: ```sql SET GLOBAL validate_password.length=4; -- 设置最短密码长度为4 ``` 完成上述步骤后,即可允许更简单的密码被接受。 --- #### 方法二:完全禁用 `validate_password` 插件 如果不需要任何密码复杂度限制,则可以选择卸载 `validate_password` 插件。 1. 登录到 MySQL 数据库: ```bash mysql -u root -p ``` 2. 卸载插件: ```sql UNINSTALL PLUGIN validate_password; ``` 注意,在某些情况下可能需要先重新加载插件才能正常卸载它。如果遇到错误提示未找到插件,可能是尚未安装此插件,此时无需额外处理[^5]。 --- #### 方法三:永久保存配置变更 无论是选择降低密码策略还是彻底移除插件,都需要确保这些改动能够持久化至服务器重启后仍然有效。为此应编辑 MySQL 的配置文件(通常是 `/etc/my.cnf` 或 `/etc/mysql/my.cnf`),并加入以下内容: ```ini [mysqld] validate_password=off ``` 或者指定具体的参数选项以覆盖默认行为: ```ini [mysqld] validate_password_policy=0 validate_password_length=4 ``` 最后记得重启 MySQL 服务使新设定生效: ```bash sudo systemctl restart mysqld ``` --- ### 注意事项 尽管允许较弱的密码方便管理,但从安全角度出发并不推荐这样做。建议始终遵循最佳实践维护数据库账户的安全性[^2]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值