mysql临时密码不能用,关于macos:自动生成临时密码后无法访问MySQL

我已擦除并安装了OSX 10.11 El Capitan,并且已按照本教程进行操作,以在新的OS X上启动并运行MySQL。第一步是下载适用于Mac OS X 10.9(x86,64位)的MySQL, DMG存档(在本教程中建议在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.

太奇怪了,我从未见过这样的信息。之后,我通过首选项窗格启动MySQL,然后在终端上使用/usr/local/mysql/bin/mysql -v命令进行下一步。我收到一条错误消息,说:

ERROR 1045 (28000): Access denied for user 'cheetah'@'localhost' (using password: NO)

我也尝试使用root作为用户名和空密码通过Sequel Pro访问数据库,但拒绝访问消息显示:

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)

好的,我也再次尝试使用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.

我该如何解决这个问题?我记得MySQL从来没有自动生成过这样的临时密码,不是吗?

尝试这个:

mysql -u root -h 127.0.0.1 -p

Enter password: (enter the random password here)

参考:https://dev.mysql.com/doc/refman/5.7/en/data-directory-initialization-mysqld.html

之后,您可以使用

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new-password';

这对我没有用。无论我做什么我都收到消息Access denied for user root@localhost (using password: YES)

您应该使用临时的自动生成的密码代替随机密码。为我工作(OSX,MySQL 5.7.9,全新安装)

它像魅力一样工作... thx

使用自动生成的密码对我不起作用-它显示"错误1862(HY000):您的密码已过期。要登录,必须使用支持过期密码的客户端对其进行更改。" - - - - 我生气了!!!!

@ T1000我认为添加--connect-expired-password选项可以解决您的问题。

为我工作。非常感谢。

提示:请确保已启动mysql。

Mac上的MySQL是令人抓狂的用户体验。我通过DMG安装它,生成密码。我通过设置启动了它。。。尝试连接,密码过期,wtf。尝试重置它。 Access denied for user root@localhost (using password: YES) ..太浪费空间了。

这是在运行MySql v5.7(从.dmg安装)的OS X Yosemite上为我工作的。

cd /usr/local/mysql/bin

./mysql -u root -p --connect-expired-password

(输入安装程序生成的临时密码。)

这将使您进入沙箱模式和mysql>提示符。然后使用SET PASSWORD设置所需的root密码:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('mySuperSecretPassword');

这个答案为我节省了一整天!我最初为Mac安装5.7的二进制版本,临时密码有效。后来由于某种原因mysql在硬件问题上崩溃,我用DMG重新安装,然后在安装失败时弹出临时密码!我几乎放弃,直到使用--connect-expired-password,这使我可以使用临时密码登录

--connect-expired-password是有效选项吗?

@LZH请参阅我的答案中的沙盒模式链接,其中记录了--connect-expired-password

过了一会儿,我发现临时密码对某些大小写字母有一些歧义。

就我而言,安装程序要求我输入密码。我输入了。它再次询问,我再次输入。安装后,这是唯一有效的方法。数据库安装程序应该告诉您第一次。

现在,MySQL生成的密码已过期,问题已解决,使该密码可以再次使用(1)或生成一个新密码(2)。这可以通过运行带有skip-grant-tables选项的MySQL来完成,这将使其忽略访问权限:

停止您的MySQL服务器。

将以下内容添加到my.cnf文件的[mysqld]部分的末尾并保存。

skip-grant-tables

启动MySQL服务器。

在终端中,键入

mysql -u root -p

进入MySQL命令提示符。

在命令提示符下,键入

USE mysql;

进入保留数据库用户的mysql数据库。

类型

<5233>

让MySQL知道密码未过期(1)或

UPDATE user SET authentication_string = PASSWORD('YourNewPassword'), password_expired = 'N' WHERE User = 'root';

将新密码YourNewPassword分配给根(2)。

这是网上的好答案;)

@Anton:谢谢您,此解决方案适用于El capitan 10.11.1

我在网络上尝试了很多答案,但是只有这样才能奏效,因为其他人没有提到" USE mysql;"。 sql语句前的命令。

在OSX 10.11 El Capitan和MySQL 5.7.X下执行这些步骤应该可以解决问题。

考虑到您已经安装了MySQL。

打开一个终端窗口并输入:

sudo /usr/local/mysql/support-files/mysql.server停止

须藤mysqld_safe --skip-grant-tables

由于在步骤2中触发的命令将处于运行状态,因此您需要打开另一个终端窗口,然后键入:

mysql -u root -p

更新mysql.user SET password_expired ='N',authentication_string = PASSWORD('')WHERE User ='root';

放弃;

sudo /usr/local/mysql/support-files/mysql.server重新启动

重要提示:在步骤2中,您必须替换密码。

希望它能为您服务。

奇迹般有效

这种方法对我适用于macOS High Sierra。更新操作系统后,使用MAMP Pro安装的使用MySQL的Node.js项目停止工作。现在,与MAMP Pro分开安装MySQL之后,它可以再次工作。

感谢您的来信。使用自动生成临时密码的Oracle软件包安装Mysql后,它对我有用。但是,要停止mysql服务器,我需要"系统偏好设置" MYSQL面板。我还取消选中在重新启动时启动mysql的选项,而是使用上面的步骤4:sudo /usr/local/mysql/support-files/mysql.server restart(或启动)

MySQL密码已过期

重置密码将暂时解决问题,但是,从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中的密码过期策略

我正在运行macOS Sierra(10.12.3),并安装了mysql-5.7.17-macos10.12-x86_64.dmg。

@lesley的答案对我有用,但我需要添加./来确保我正在当前工作目录中调用mysql二进制文件。上述软件包的安装位置。

如果cd至/usr/local/mysql/bin并运行mysql -u root -p --connect-expired-password,则可能会收到以下错误。

mysql: unknown option '--connect-expired-password'

是的因为仅运行MySQL而不提供路径,所以称为先前安装的MariaDB客户端版本。

因此,为确保执行正确的二进制文件,您可以

提供绝对路径

/usr/local/mysql/bin/mysql -u root -p --connect-expired-password

或更改目录后的相对路径

cd /usr/local/mysql/bin

./mysql -u root -p --connect-expired-password

两种方法都应该起作用。连接到客户端后,说明与@lesley中的说明相同。

输入安装程序生成的临时密码,然后设置新密码。

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yourNewPassword');

我遇到了同样的问题。我遵循了https://www.ntu.edu.sg/home/ehchua/programming/sql/MySQL_HowTo.html上的安装过程指南,并下载了DMG归档文件并将MySQL安装在我的MAC OS X 10.12.2上。

最后在新终端上执行以下命令。

cd /usr/local/mysql/bin

./mysql -u root -p --connect-expired-password

有效。

这个特别的人帮了我大忙:

如此链接中所指定:https://www.variphy.com/kb/mac-os-x-reset-mysql-root-password

执行所有步骤,除了执行

执行

UPDATE mysql.user

SET authentication_string = PASSWORD('MyNewPass'), password_expired = 'N'

WHERE User = 'root' AND Host = 'localhost';

然后执行

冲洗特权;

对于Mysql 5.7

shell $ > sudo grep 'temporary password' /var/log/mysqld.log

答案7对我有用:从dmg安装了El capitan,MySQL并自动生成了密码,但是在输入./mysql -root -p之前确保将cd更改为/usr/local/bin/mysql显而易见,但是我不是第一次。

现在查找所有数据库和表的位置以及如何链接它们。

通过首次下载软件包手动安装MySQL会为root生成一个默认密码。复制并保存。如果在连续的重新安装中以某种方式未完成,则不会显示该密码。

因此,您无法登录到root用户。

请执行下列操作 :

从系统中找到与mysql相关的条目

sudo find / -name mysql

通过执行rm -rf删除所有与mysql相关的条目

下载最新的mysql-server并安装它。

系统将提示您使用您需要复制的默认密码。

运行mysql_secure_installation并在要求输入root时粘贴该密码。

随后按照步骤操作,并在提示时更改管理员密码。

我通过运行解决了这个问题

'mysql -u root -p --connect-expired-password'

然后从mysql输入过期的自动生成密码。终于进去了。

'use mysql'

然后使用以下命令更新用户" root" pw

<5233>

我安装了View brew,并且在看到以下警告之前,我有相同的错误消息:

We've installed your MySQL database without a root password. To secure it run:

mysql_secure_installation

To connect run:

mysql -uroot

To have launchd start mysql now and restart at login:

brew services start mysql

Or, if you don't want/need a background service you can just run:

mysql.server start

解决此问题的另一种方法是改用旧版本的MySQL。

我已经卸载了Mac OS X 10.9(x86,64位)DMG Archive的MySQL version 5.7.9,然后安装了旧版本Mac OS X 10.9(x86,64位)DMG Archive的MySQL version 5.6.7。这个问题解决了。在完成此旧版本的安装之前,给定的自动生成的密码已消失,我最终可以使用root作为用户名和空白密码来访问数据库。一切都像魅力一样运作!

如果您要进行全新安装,则建议使用最新版本。

@KumarNitin是的,我是这么认为的。顺便说一句,谢谢您的建议。

以前安装mysql时可能会发生这种情况。

尝试为上一个mysql版本设置的密码。

这确实为我工作。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值