MySQL密码过期。连不上

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (23)

我刚刚擦了擦我的Mac,重新安装了El Capitan。我现在很难连接到MySQL。在完成了Web服务器设置过程之后,我创建了一个简单的PHP测试文件:

<?php
  $conn = new mysqli("127.0.0.1", "root", "xxxxxxxx");
  if ($conn->connect_error) echo "Connection failed: " . $conn->connect_error; 
  else echo "Connected successfully";
  phpinfo();
?>

当我运行它时,我会得到以下错误:

Warning: mysqli::mysqli(): (HY000/1862): Your password has expired. To log in you must change it using a client that supports expired passwords. in /Users/rich/Documents/DESIGN/test/index.php on line 3
Connection failed: Your password has expired. To log in you must change it using a client that supports expired passwords.

我以前从没见过这种联系的反应。如果我不能连接,该如何修复?

在终端中,我输入了命令:

mysql -u root -p

这要求我输入我的密码(当前的密码)。我现在可以访问MySQL命令,但是任何尝试都会导致以下错误:

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

如何使用ALTER USER?

提问于
用户回答回答于

所以我终于自己找到了解决办法。

我首先进入终端机输入:

mysql -u root -p

这询问了我输入的当前密码,它给了我提供更多MySQL命令的权限。我从这里尝试的任何东西都产生了这个错误:

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

这很让人困惑,因为我无法真正看到一种使用以下方法重新设置密码的方法:ALTER USER语句,但我确实找到了另一个简单的解决方案:

SET PASSWORD = PASSWORD('xxxxxxxx');

用户回答回答于

首先,我使用:

 mysql -u root -p

为“根”提供当前密码。下一步:

mysql> ALTER USER `root`@`localhost` IDENTIFIED BY 'new_password',
       `root`@`localhost` PASSWORD EXPIRE NEVER;

变化'new_password'用户“root”的新密码。

它解决了我的问题。

扫码关注云+社区