Mac使用mysql中出现ERROR 1045: Access denied for user: 'root@localhost' 以及密码过期解决方法

本文介绍如何解决MySQL登录时出现的ERROR1045:Access denied for user问题,包括通过安全模式进入数据库、修改忘记的root密码以及解决密码过期的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章链接
昨天学数据库,安装的时候完全没看到设置密码的地方…
然后登陆不进去,一直出现ERROR 1045: Access denied for user: ‘root@localhost’报错
找了一晚上资料终于找到一个可行的解决办法,分享一个。

1. 用安全模式进入数据库

1.1 打开系统偏好设置,如果你的电脑已经安装mysql,会在下面有一个mysql的按钮。点进去关闭mysql服务。
关闭myql

1.2 打开一个终端,输入一下命令

$ cd /usr/local/mysql/bin
$ sudo su 

然后便可以看到终端命令变成这个开头: sh-3.2#
输入一下命令

sh-3.2#./mysqld_safe --skip-grant-tables &

之后边可以以安全模式进入数据库了。

1.3 现在打开一个新的终端
输入以下命令:

mysql -u -root

然后便会发现你不需要密码就进入数据库了。

2. 修改密码

现在可以看到终端命令变成以mysql开头。
修改密码这一部分在网上找了很多教程都不对,应该是因为版本不同的问题。
我装的最新的mysql,测试以后一下这个方法可行。
接着之前的步骤,在mysql命令下。输入以下命令

UPDATE mysql.user SET authentication_string = PASSWORD('MyNewPass')
WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;

这样就成功更改密码了。
之后退出mysql,输入以下命令退出安全模式。

/usr/local/mysql/share/mysql.server start

然后在终端输入

$mysql -u root -p

进入数据库。

这个时候我还遇到一个问题,就是显示说我的代码过期了。
错误如下:

#1862 - Your password has expired. To log in you must change it using a client that supports expired passwords. 

解决这个问题只需要重新更改一下密码即可。
在终端输入以下命令,会让你输入老密码和新密码。

/usr/local/mysql/bin/mysqladmin -u root -p password
Enter password:
New password:
Confirm new password:

之后再用新密码进入mysql就大功告成啦!

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值