数据库之mac上mysql root密码忘记或权限错误的解决办法

以下方法亲测有效,过程使用的工具只有mac的终端无需workbench

当我们通过终端连接mysql数据库时候我们会看到这样的信息

ERROR 1045: Access denied for user: 'root@localhost' (Using 
password: NO)

或者

ERROR 1045: Access denied for user: 'root@localhost' (Using 
password: YES)

解决上面错误的方法之一就是重新设置我们的mysql的root密码。

1.在终端输入下面命令关闭正在运行的mysql,如果msyql没有运行可以跳过,需要输入mysql的密码。如果mysql密码忘记了,可以直接通过系统偏好设置里面关闭!

/usr/local/mysql/bin/mysqladmin -u root -p shutdown

系统便好设置关闭如图
这里写图片描述

2.进入mysql的bin目录执行如下命令

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

之后输入管理员密码会看到

sh-3.2# 

之后我们输入下面命令以安全模式运行mysql

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

运行结束我们打开mac的系统偏好设置,选择msyql,我们会发现Mysql重新运行了如图

这里写图片描述

回到终端点击Command + N 重新打开一个终端
输入

mysql -u -root

这时候我们不需要密码就能进入mysql

Your MySQL connection id is 57
Server version: 5.7.10 MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

注意:这里有的时候会进不来,这个时候可以尝试重启mac电脑,具体原因我也不清楚。

3.修改root密码
首先执行下面命令为了能够修改任意的密码

mysql> FLUSH PRIVILEGES;

之后执行修改密码的SQL语句,这里的qsd19001008可以替换你自己想要修改的密码

mysql> SET PASSWORD FOR root@'localhost' = PASSWORD('qsd19001008');

如果你的子帐号可以登录msyql你也可以尝试下面的方法

mysql>UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';

mysql>USE mysql
   UPDATE user SET Password = PASSWORD('newpwd')
   WHERE Host = 'localhost' AND User = 'root';

又或者

mysql>USE mysql
   UPDATE user SET Password = PASSWORD('newpwd')
   WHERE Host = '%' AND User = 'root';

最后刷新

FLUSH PRIVILEGES;

Control+D推出mysql,然后关闭安全模式数据库,这里要输入你刚才设置数据密码就好啦

/usr/local/mysql/bin/mysqladmin -u root -p shutdown

到目前为止你就找回了你mysql的密码啦

正常启动mysql数据库,输入刚才设置的密码qsd19001008

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

如果上面的命令不执行,同理到系统偏好里开启mysql服务器。

最后执行下面的终端命令,然后输入刚才设置的密码qsd19001008我们就可以正常进入mysql啦

$mysql -u root -p
  • 15
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
当你遇到 "Access denied for user 'root'@'localhost' (using password: YES)" 错误,这通常表示你尝试登录MySQL数据库服务器作为root用户,但输入的密码不正确。如果你确实忘记root用户的密码,可以按照以下步骤来重置或设置新的密码: 1. **通过命令行(Linux/Mac)**: - 以安全模式启动MySQL:运行 `sudo service mysql start --skip-grant-tables` - 使用 `mysql` 命令登录系统,但此时不需要密码,因为`--skip-grant-tables`选项关闭了权限检查:`mysql -u root` - 在MySQL提示符下,执行 `UPDATE mysql.user SET Password=PASSWORD('新密码') WHERE User='root';` - 重启MySQL服务,并使用新密码登录:`sudo service mysql restart` 然后 `mysql -u root -p 新密码` 2. **通过MySQL客户端(Windows)**: - 以管理员身份打开命令提示符或终端 - 进入MySQL安装目录下的 `bin` 文件夹,例如 `C:\Program Files\MySQL\MySQL Server 8.0\bin` - 运行 `mysql_secure_installation`,根据提示操作,选择“Reset root password”并设置新密码 3. **通过MySQL Workbench(跨平台)**: - 打开MySQL Workbench,连接到服务器 - 在工具菜单中选择 "Server" > "Passwords",然后按照向导重设root用户的密码 重要提示:为了安全起见,建议重置密码后立即修改默认的密码策略,如设置更复杂的密码并启用SSL加密。 相关问题: 1. 如何防止MySQL root用户的密码被轻易重置? 2. 除了root用户,还有哪些MySQL用户权限等级? 3. 如果远程访问MySQL服务器,如何设置访问权限
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值