Che*_*dae 64 mysql macos sequelpro osx-elcapitan
我已经删除并安装了OSX 10.11 El Capitan
,我一直在通过本教程来MySQL
启动并运行新的OS X.第一步是下载MySQL For Mac OS X 10.9(x86,64位),DMG Archive(适用于10.11) ,他们在教程中推荐).当我完成安装MySQL时,我收到消息说:
2015-10-25T02:10:54.549219Z 1 [Note] A temporary password is generated for root@localhost: R>gFySuiu23U
If you lose this password, please consult the section How to Reset the Root Password in the MySQL reference manual.
Run Code Online (Sandbox Code Playgroud)
这很奇怪,我从未见过那种消息.之后,我通过Preference Pane启动了MySQL,然后/usr/local/mysql/bin/mysql -v
在终端上使用命令进行另一步.我收到一条错误消息说:
ERROR 1045 (28000): Access denied for user 'cheetah'@'localhost' (using password: NO)
我也尝试通过Sequel Pro
使用root作为用户名和空密码来访问数据库,我得到访问被拒绝消息说:
Unable to connect to host 127.0.0.1 because access was denied.
Double-check your username and password and ensure that access from your current location is permitted.
MySQL said: Access denied for user 'root'@'localhost' (using password: NO)
Run Code Online (Sandbox Code Playgroud)
好的,我还尝试使用root作为用户名,但是'R> gFySuiu23U'作为密码(由MySQL生成).我收到连接失败的消息说:
Unable to connect to host 127.0.0.1, or the request timed out.
Be sure that the address is correct and that you have the necessary privileges, or try increasing the connection timeout (currently 10 seconds).
MySQL said: 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从来没有像这样自动生成临时密码,不是吗?
Kum*_*tin 103
试试这个:
mysql -u root -h 127.0.0.1 -p
Enter password: (enter the random password here)
Run Code Online (Sandbox Code Playgroud)
参考:https://dev.mysql.com/doc/refman/5.7/en/data-directory-initialization-mysqld.html
在此之后,您可以使用重置密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new-password';
Les*_*ley 40
这对于运行MySql v5.7的OS X Yosemite(从.dmg安装)起了作用.
cd /usr/local/mysql/bin
./mysql -u root -p --connect-expired-password
Run Code Online (Sandbox Code Playgroud)
(输入安装程序生成的临时密码.)
这会让您进入沙箱模式并mysql>
提示.然后使用SET PASSWORD设置所需的root密码:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('mySuperSecretPassword');
Run Code Online (Sandbox Code Playgroud)
Ant*_*rov 34
既然MySQL生成的密码已过期,问题就会减少,以使此密码再次起作用(1)或生成新密码(2).这可以通过使用skip-grant-tables选项运行MySQL来实现,这将使其忽略访问权限:
停止你的MySQL服务器.
在my.cnf文件的[mysqld]部分的末尾添加以下内容并保存.
skip-grant-tables
启动MySQL服务器.
在终端中,键入
mysql -u root -p
进入MySQL命令提示符.
在命令提示符下,键入
USE mysql;
进入保存数据库用户的mysql数据库.
类型
UPDATE user SET password_expired = 'N' WHERE User = 'root';
让MySQL知道密码没有过期(1)或
UPDATE user SET authentication_string = PASSWORD('YourNewPassword'), password_expired = 'N' WHERE User = 'root';
Run Code Online (Sandbox Code Playgroud)
将新密码YourNewPassword分配给root(2).
Mar*_*elo 16
在OSX 10.11 El Capitan和MySQL 5.7.X下执行这些步骤应该可以解决问题.
考虑到你已经安装了MySQL然后..
打开终端窗口并键入:
由于在步骤2中触发的命令将处于运行状态,因此您需要打开另一个终端窗口,然后键入:
重要提示:在步骤2中,您必须更换密码.
希望它会为你而生.
重置密码将暂时解决问题,但是,从MySQL 5.7.4到5.7.10(我认为鼓励更好的安全性)default_password_lifetime
变量的默认值是360(大约一年).对于这些版本,如果您未对此变量(或单个用户帐户)进行任何更改,则所有用户密码将在360天后过期.
通常,从脚本中您可能会收到消息:"您的密码已过期.要登录,您必须使用支持过期密码的客户端进行更改."
因此,为防止自动密码过期,请以root(mysql -u root -p
)身份登录,然后,对于自动连接到服务器的客户端(例如脚本),请更改这些客户端的密码过期设置:
ALTER USER 'script'@'localhost' PASSWORD EXPIRE NEVER;
或者您可以为所有用户禁用自动密码过期:
SET GLOBAL default_password_lifetime = 0;
MySQL:密码过期和沙盒模式
MySQL:密码过期策略
MySQL Server 5.7中的密码过期策略
归档时间: |
|
查看次数: |
87153 次 |
最近记录: |