MySQL - 无法正确设置/重置 root 用户的密码(CentOS)

MySQL - 无法正确设置/重置 root 用户的密码(CentOS)

我在 CentOS 6.9 中安装了 MySQL 5.7.2。在其他系统(Debian、Arch)中,当我安装 mysql 时,它会在安装过程中提示输入 root 密码,但在这种情况下,它没有提示输入密码。所以我尝试使用空白密码登录 mysql shell。但 mysql 报告拒绝访问信息。

然后我尝试在 mysql 安全模式下设置新密码。

$ service mysqld stop
$ mysql_safe --skip-grant-tables &
$ mysql -u root
mysql > USE mysql;
mysql > UPDATE user SET authentication_string = PASSWORD('mypass') WHERE User='root';
mysql > FLUSH PRIVILEGES;

(有些人被指示使用密码专栏。但我没有找到这个专栏用户表。所以我用身份验证_字符串柱子)

运行完美。我可以使用新密码以 root 身份登录 mysql shell。

然后我安装了phpmyadmin。当我尝试使用我的 mysql 凭据登录 phpmyadmin 时,它报告以下错误:

1862 - 您的密码已过期。要登录,您必须使用支持过期密码的客户端更改密码。

mysqli_real_connect():(HY000/1862):您的密码已过期。要登录,您必须使用支持过期密码的客户端更改密码。

为了解决这个问题,我登录到 mysql shell 并尝试了这个:

ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;

它报告了以下错误:

错误 1820 (HY000):在执行此语句之前,您必须使用 ALTER USER 语句重置密码。

所以我尝试在 mysql shell 中执行以下操作

mysql > ALTER USER 'root'@'localhost' IDENTIFIED BY 'mypass';

但是报如下错误:

错误 1819 (HY000):您的密码不符合当前政策要求

然后我尝试使用重置密码mysql_secure_安装. 它还报告相同类型的错误:

... 失败!错误:您的密码不符合当前政策要求

现在我被困住了。问题是什么?我该如何解决这个问题?提前谢谢!

答案1

您的密码不符合当前政策要求

假设安装了validate_password插件,它实现了三个级别的密码检查:LOW、MEDIUM和STRONG。默认值是中等的

中等定义为:

MEDIUM 策略增加了以下条件:密码必须至少包含 1 个数字字符、1 个小写字符、1 个大写字符和 1 个特殊(非字母数字)字符。

使用满足这些要求的密码,设置validate_password_policyLOW禁用密码验证插件。

相关内容