php - Mysql密码已过期。 不能conn

我刚刚擦了我的Mac并重新安装了El Capitan。 我现在正努力连接到Mysql。 完成Web服务器设置过程后,我创建了一个简单的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.

我以前从未见过连接的响应。 如果我无法连接,如何解决?

编辑

在终端我输入命令:

ALTER USER

这问我输入的密码(当前的密码)。我现在可以访问mysql命令,但我尝试的任何内容都会导致此错误:

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

如何使用ALTER USER重置密码?

16个解决方案

164 votes

所以我终于找到了解决方案。

首先我进入终端并打字:

SET PASSWORD = PASSWORD('xxxxxxxx');

这要求我输入的当前密码,它让我可以提供更多的mysql命令。 我在这里试过的任何东西都给出了这个错误:

SET PASSWORD = PASSWORD('xxxxxxxx');

这很令人困惑,因为我实际上看不到使用SET PASSWORD = PASSWORD('xxxxxxxx');语句重置密码的方法,但我找到了另一个简单的解决方案:

SET PASSWORD = PASSWORD('xxxxxxxx');

Coop answered 2019-05-16T08:57:53Z

73 votes

首先,我使用:

mysql -u root -p

给我当前的'root'密码。下一个:

mysql> ALTER USER `root`@`localhost` IDENTIFIED BY 'new_password',

`root`@`localhost` PASSWORD EXPIRE NEVER;

将'new_password'更改为用户“root”的新密码。

它解决了我的问题。

Piotr N. answered 2019-05-16T08:58:40Z

44 votes

mysqladmin -u [username] -p password在OS X El Capitan和MySQL 5.7.12社区服务器上为我工作。 例:

$ /usr/local/mysql/bin/mysqladmin -u root -p password

Enter password:

New password:

Confirm new password:

Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.

这类似于pavan sachi的答案,但有密码提示。

我的错误是“#1862 - 您的密码已过期。要登录,您必须使用支持过期密码的客户端进行更改。” 在phpMyAdmin登录屏幕第一次。

Kit answered 2019-05-16T08:59:19Z

14 votes

MySQL密码到期

重置密码只会暂时解决问题。 从MySQL 5.7.4到5.7.10(为了更好的安全性 - 参见MySQL:密码过期策略),默认的default_password_lifetime = 0变量值为360(1年等)。 对于这些版本,如果您不对此变量(或单个用户帐户)进行任何更改,则所有密码将在360天后过期。

因此,从脚本中您可能会收到消息:“您的密码已过期。要登录,您必须使用支持过期密码的客户端进行更改。”

要停止自动密码到期,请以root身份登录(default_password_lifetime = 0),然后,对于自动连接到服务器的客户端(例如脚本),更改密码到期设置:

default_password_lifetime = 0

或者您可以为所有用户禁用自动密码过期:

default_password_lifetime = 0

正如Mertaydin在评论中所指出的,为了使这个永久性添加以下行到default_password_lifetime = 0文件,MySQL在启动时读取,在[mysqld]组设置下。 my.cnf的位置取决于您的设置(例如Windows,OS X上的Homebrew或安装程序),以及您是希望Unix或全局的每个用户:

的[mysqld]default_password_lifetime = 0(这里可能还有其他设置...)

请参阅有关配置文件的MySQL文档。

Dave Everitt answered 2019-05-16T09:00:44Z

10 votes

我最近在mac os x capitan上安装mysql时遇到了同样的问题。我在这里找不到正确的答案,所以加上这个答案。

当前版本的MySql,在安装mysql时生成临时密码。 使用此密码使用mysqladmin实用程序设置新密码,如下所示;

/ usr / local / mysql / bin / mysqladmin -u root -p'<你的临时密码>' 密码'<您的新密码>'

希望它能帮助你和其他人。

pavan sachi answered 2019-05-16T09:01:32Z

7 votes

只需下载MySQL工作台即可登录。它会提示您立即自动更改密码。

Grassright answered 2019-05-16T09:01:58Z

4 votes

以安全模式启动MYSQL

mysqld_safe --skip-grant-tables &

连接到MYSQL服务器

mysql -u root

运行SQL命令重置密码:

use mysql;

SET GLOBAL default_password_lifetime = 0;

SET PASSWORD = PASSWORD('new_password');

最后一步,重启你的mysql服务

Dylan B answered 2019-05-16T09:02:47Z

4 votes

我几天前遇到过这个问题。 获得5.7版MySQL的最佳解决方案; 使用以下命令登录您的mysql控制台并更改您的密码:

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

Mehmet MERCAN answered 2019-05-16T09:03:13Z

3 votes

警告:这将允许任何用户登录

我不得不尝试别的东西。 由于我的root密码已过期而且更改不是一个选项,因为

skip-grant-tables

暂时添加skip-grant-tables [mysqld]在my.cnf并重启mysql做了招数

Marius.C answered 2019-05-16T09:04:01Z

2 votes

这对我有用:

ALTER USER'root'@'localhost'识别'yourpassword','root'@'localhost'PASSWORD EXPIRE NEVER;

Robert Saylor answered 2019-05-16T09:04:33Z

1 votes

密码到期是MySQL 5.6或5.7中的新功能。

答案很明确:使用能够过期密码更改的客户端(我认为Sequel Pro可以做到)。

MySQLi库显然无法更改过期的密码。

如果您对localhost的访问权限有限且只有控制台客户端,则标准的mysql客户端可以执行此操作。

DanFromGermany answered 2019-05-16T09:05:23Z

1 votes

所有这些答案都使用Linux控制台来访问MySQL。

如果您使用的是Windows并且正在使用WAMP,则可以先打开MySQL控制台(click WAMP icon->MySQL->MySQL console)。

然后它会要求您输入当前密码,然后输入密码。

然后键入SET PASSWORD = PASSWORD('some_pass');

Rust answered 2019-05-16T09:06:11Z

1 votes

最好的解决方案:

[PATH MYSQL]/bin/mysql -u root

[Enter password]

SET GLOBAL default_password_lifetime = 0;

然后工作正常。

Fastorro answered 2019-05-16T09:06:48Z

0 votes

使用--skip-grant-tables选项重新启动MySQL服务器然后设置新的root密码

$ mysql -u root

mysql> USE mysql;

mysql> UPDATE user SET password=PASSWORD("NEWPASSWORD") WHERE User='root';

mysql> FLUSH PRIVILEGES;

mysql> quit

现在,如果需要,可以更新mysql.user表(字段password_expired ='N')不使密码到期。

Adarsh Gangadharan answered 2019-05-16T09:07:25Z

0 votes

打开MySQL控制台并输入SET PASSWORD ='您的密码';然后按ENTER键,将为用户root设置您定义的密码。

你只能写SET PASSWORD ='';这将为root用户设置密码为空。

Prasant Kumar answered 2019-05-16T09:07:59Z

0 votes

在phpmyadmin的Windows上查看Variables:default_password_lifetime,并将其切换为0(而不是360),享受。

它可能比mySQL再360天,所以添加my.ini:

[mysqld]

default_password_lifetime=0

并重启mysql。

Laurent Zminka answered 2019-05-16T09:08:40Z

php mysql 验证码失效,php - Mysql密码已过期。 不能conn相关推荐

  1. 远程桌面连接时显示密码已过期

    最近同事遇到个问题,就是在远程桌面连接服务器时提示"密码已过期,必须更改才能登录",但是他自己又不能登录,此时更不可能修改密码,那剩下的估计只能是联系管理员了,而我作为管理员,就得 ...

  2. SQLServer数据库密码已过期问题 处理

    Sqlserver在设置登录账户信息的时候,有个复选框信息会被默认勾上,即强制实施密码策略,默认勾选上的还有强制密码过期.如果勾上了这个强制密码过期后,则你的账户密码在一定时间登录后会提示Sqlser ...

  3. 计算机用户密码过期,电脑登陆密码已过期的详细解决方案

    有些使用密码保护的电脑用户,可能会遇到这样一种情况:输入电脑的开机密码,却提示你的密码已过期,必须更改.针对这种情况,我们该如何处理呢?怎么才能使电脑的密码保持长久有效?那么接下来韩博士小编就为大家带 ...

  4. 出现身份验证错误,无法连接到本地安全机构,远程计算机:192.168.*.*,这可能是由于密码过期,如果密码已过期请更新密码。如需帮助,请于管理员或技术支持人员联系。”

    如: 远程桌面连接访问时,提示: "出现身份验证错误, 无法连接到本地安全机构, 远程计算机:192.168.*.*, 这可能是由于密码过期, 如果密码已过期请更新密码. 如需帮助,请于管理 ...

  5. redistemplate 设置永不过期_密码已过期 拒绝访问如何处理?

    1. 开启密码过期选项 通常情况下,此功能默认都是禁用的状态.所以首先第一步,我们需要先开启密码过期选项.同时按住Windows键+R键,在出现的命令窗口中,输入以下命令:netplwiz,点击确定. ...

  6. redistemplate 设置永不过期_“密码已过期,拒绝访问!”

    定期更改本地账户密码可以一定程度上维护我们的系统,网络安全,本期视频中,小编将指导大家如何在Win10中设置本地账户密码的过期期限,以提醒您何时需要重置密码,一起往下看看吧. 1. 开启密码过期选项 ...

  7. 解决Navicat使用账号密码登陆Oracle数据库提示【密码已过期,请输入新密码】【或账号已被锁定】

    一.问题描述 打开Navicat使用对应的账号密码登陆Oracle时,弹出提示框[密码已经过期,请输入新密码]:但是自己按照提示输入正确的旧密码和设置对应的新密码后无法修改成功提示[ORA-01017 ...

  8. oracle用户密码已过期,oracle提示登录密码过期完美解决方法

    oracle 提示登录密码过期解决 1.登录到oracle的 服务器 2.切换到oracle 用户 3.设置到当前操作的实例名:export ORACLE_SID=XXX 4.连接数据库的命令行模式: ...

  9. oracle用户密码已过期,oracle用户密码过期的处理方法

    oracle用户密码过期?不要紧,下面就为您介绍一个oracle用户密码过期的处理方法,供您参考,如果您对此方面感兴趣的话,不妨一看. 在测试环境学习oracle,出现oracle用户密码过期的问题, ...

最新文章

  1. linux系统用uefi启动安装win7,uefi下安装win7系统有什么不同
  2. 谷歌开源预训练新范式BiT,准确率提高近25%!网友评价:CV界的BERT
  3. 埃拉托色尼素数筛法(转)
  4. 同网段不同网段主机间通信原理
  5. 浅谈用户体验的 4 个维度
  6. 九背包上的发言稿_01背包
  7. 基类指针调用派生类函数_C++ 多态性:虚函数--基类与派生类类型转换(第7章 05)例子问题解析(学习笔记:第8章 05)...
  8. java工厂模式定义宠物_Java设计模式之抽象工厂模式
  9. redis memcache 性能比较
  10. [转载] python 运算符重载有什么用_Python运算符重载用法实例分析
  11. java中table属性_div实现table功能
  12. wegame饥荒一直连接中_英雄联盟手游:腾讯WeGame发布了,可以玩云顶之弈自走棋...
  13. eclipse汉化(傻瓜式)
  14. 计算机安装微信打不开,电脑版微信打不开解决方法
  15. 【图论】Graph Fourier Transform
  16. CMD编写bat病毒
  17. Unity粒子特效UI层级问题
  18. css调logo大小,B2主题logo设置篇(尺寸,设置,闪光特效的设置方法)
  19. 详解30道Vue面试题
  20. 【samba】Wodows同步Linux文件|搭建共享文件服务器——在windows上映射网络驱动器...

热门文章

  1. 物联网测试地图(译)
  2. 2.认识思科设备连接有线和无线练习题
  3. 阴阳师电脑版安装显示服务器错误,阴阳师桌面版安装失败怎么办?阴阳师桌面版安装失败解决办法...
  4. 第12章 CLI工具
  5. 东华大学 2022 oj c++ 数动物
  6. 基于vue+js的商城、购物网站 毕业设计 毕设源代码的实现和设计(5)商品详情
  7. c语言double可以自动转float,关于float 跟double的转换
  8. 3D OpenGL ES
  9. Deep Learning for Depression Recognition with Audiovisual Cues: A Review
  10. stateflow仿真练习实例——汽车五状态逻辑控制仿真