Coo*_*oop 82 php mysql macos osx-elcapitan
我刚刚擦了我的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();
?>
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我收到此错误:
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.
Run Code Online (Sandbox Code Playgroud)
我以前从未见过连接的响应.如果我无法连接,如何解决?
编辑
在终端我输入命令:
mysql -u root -p
这问我输入的密码(当前的密码).我现在可以访问mysql命令,但我尝试的任何内容都会导致此错误:
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
Run Code Online (Sandbox Code Playgroud)
如何使用重置密码ALTER USER?
Coo*_*oop 172
所以我终于找到了解决方案.
首先我进入终端并打字:
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');
小智 84
首先,我使用:
mysql -u root -p
Run Code Online (Sandbox Code Playgroud)
给我当前的'root'密码.下一个:
mysql> ALTER USER `root`@`localhost` IDENTIFIED BY 'new_password',
`root`@`localhost` PASSWORD EXPIRE NEVER;
Run Code Online (Sandbox Code Playgroud)
更改'new_password'为用户"root"的新密码.
它解决了我的问题.
Kit*_*Kit 49
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.
Run Code Online (Sandbox Code Playgroud)
这类似于pavan sachi的答案,但有密码提示.
我的错误是"#1862 - 您的密码已过期.要登录,您必须使用支持过期密码的客户端进行更改." 在phpMyAdmin登录屏幕第一次.
Dav*_*itt 17
重置密码只会暂时解决问题.从MySQL 5.7.4到5.7.10(为了更好的安全性 - 参见MySQL:密码过期策略),默认default_password_lifetime变量值为360(1年等).对于这些版本,如果您不对此变量(或单个用户帐户)进行任何更改,则所有密码将在360天后过期.
因此,从脚本中您可能会收到消息:"您的密码已过期.要登录,您必须使用支持过期密码的客户端进行更改."
要停止自动密码到期,请以root(mysql -u root -p)身份登录,然后,对于自动连接到服务器的客户端(例如脚本),更改密码到期设置:
ALTER USER 'script'@'localhost' PASSWORD EXPIRE NEVER;
或者您可以为所有用户禁用自动密码过期:
SET GLOBAL default_password_lifetime = 0;
正如Mertaydin在评论中所指出的那样,为了使这个永久性,将以下行添加到my.cnfMySQL在启动时读取的文件集中[mysqld].位置my.cnf取决于您的设置(例如Windows,OS X上的Homebrew或安装程序),以及您是希望Unix或全局上的每个用户:
[mysqld]
default_password_lifetime = 0
(这里可能还有其他设置...)
小智 11
我最近在mac os x capitan上安装mysql时遇到了同样的问题.我在这里找不到正确的答案,所以加上这个答案.
当前版本的MySql,在安装mysql时生成临时密码.使用此密码使用mysqladmin实用程序设置新密码,如下所示;
/ usr/local/mysql/bin/mysqladmin -u root -p'<您的临时密码>'密码'<您的新密码>'
希望它能帮助你和其他人.
这对我有用:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'yourpassword','root'@'localhost' PASSWORD EXPIRE NEVER;
Run Code Online (Sandbox Code Playgroud)
在 phpmyadmin 中的 Windows 中查看变量:default_password_lifetime,并将其切换为 0(而不是 360),享受。
它可能比 mySQL 再次需要 360 天,所以在 my.ini 中添加:
[mysqld]
default_password_lifetime=0
Run Code Online (Sandbox Code Playgroud)
并重新启动mysql。
| 归档时间: |
|
| 查看次数: |
110382 次 |
| 最近记录: |