Mac下MySQL的配置和修改密码以及忘记密码后的重置密码

本文介绍在Mac环境下如何配置MySQL环境变量,包括修改MySQL密码的方法,无论是已知密码还是忘记密码的情况。同时,提供了详细的步骤来帮助读者理解和操作。

Mac下MySQL的配置和修改密码

1 ) 步骤

  • 启动MySQL服务,通过 $ps aux | grep mysql 判断是否启动该服务,若未启动,则到 系统偏好设置/MySQL面板 启动服务
  • 软件默认会安装到:/usr/local/mysql 目录,进入这个目录下的bin目录:$cd /usr/local/mysql/bin
  • 执行 $./mysql -u root -p 通过初始密码登录MySQL
  • 通过下面两行代码重置密码:
    • $ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; 重置新密码
    • $quit 退出
  • 执行完成后退出重新登录,密码已重置,这是已知密码情况下的改密

2 ) 配置mysql命令

  • 查看当前用户的.bash_profile文件,如果没有则创建 $touch ~/.bash_profile
  • 编辑该文件,添加如下内容:
   PATH="/usr/local/mysql/bin:${PATH}"
   export PATH
  • 保存后退出 $wq
  • 更新.bash_profile文件 $source ~/.bash_profile
  • 通过which命令验证:which mysql 输出:/usr/local/mysql/bin/mysql 则配置成功

3 ) 使用新密码重新登录

  • $mysql -u root -p 然后输入您的新密码

忘记并找回密码

1 )修改配置文件, 查看配置文件如下

在这里插入图片描述

  • 上面这个 Configuration File 进行配置, 完成后要选中点击 Apply,跳过不同的操作系统的配置位置

  • 在 [mysqld] 节点下添加 skip-grant-tables=1

    [mysqld]
    skip-grant-tables=1
    

2 )重启 mysql

  • windows 重启

    • $ net stop mysql57
    • $ net start mysql57
  • mac 重启

    • $ sudo mysql.server restart
  • 重启后无需密码即可进入

    • $ mysql -u root -p

3 )修改密码

  • 进入数据库后修改密码
    use mysql;
    update user set authentication_string = password(‘填入你的新密码’), password_last_changed=now() where user='root';
    

4 ) 再次修改配置

  • 退出并再次修改配置文件,删除 [mysqld] 节点下的 skip-grant-tables=1
    [mysqld]
    ...
    # skip-grant-tables=1
    ...
    

完 ~

<think>好的,我现在需要帮用户解决在忘记MySQL root密码且无法登录的情况下如何重置密码的问题。首先,我得回忆一下自己之前学过的相关知识,并结合用户提供的引用内容来整理步骤。用户提到了WindowsCentOS的例子,还有MacOS的情况,但用户可能使用的是不同的操作系统,所以需要给出通用的方法,同时可能需要区分不同系统的步骤差异。不过用户这次的问题没有具体说明操作系统,所以我应该尽量覆盖常见的情况,或者先给出通用步骤,再补充不同系统的注意事项。根据引用内容,重置密码的关键步骤通常是停止MySQL服务,以跳过权限检查的方式启动,然后进入数据库修改密码,最后恢复服务。需要注意的是,不同版本的MySQL可能在命令上有些差异,比如MySQL8.0之后可能使用不同的命令修改密码。例如,引用3中提到,如果没有执行FLUSH PRIVILEGES,可能会遇到错误,所以这个步骤很重要。 首先,我得整理出一个通用的步骤,适用于大多数系统,比如Windows、LinuxMac。然后,分步骤详细说明每个环节,包括停止服务、跳过权限启动、更新密码等。同时,需要注意不同系统下服务管理的命令可能不同,比如Windows用net stopmysql,而Linux可能用systemctl或者service命令。另外,用户可能需要知道如何编辑配置文件,比如在Linux下修改my.cnf文件添加skip-grant-tables选项,或者在Windows下可能通过命令行参数传递这个选项。例如,引用1中Windows用户使用mysqld --console --skip-grant-tables --shared-memory来启动,而引用2中的CentOS则是修改配置文件后重启服务。 还有一个重点是修改密码的具体SQL语句,不同MySQL版本可能有不同的语法。例如,在MySQL5.7及之前可以使用UPDATE语句直接修改user表的authentication_string字段,而MySQL8.0可能需要使用ALTERUSER命令,如引用2引用3提到的。同时,执行FLUSHPRIVILEGES来刷新权限是必要的,否则修改可能不会生效。在确保步骤正确性的同时,还要提醒用户注意安全,比如在完成密码重置后,记得删除skip-grant-tables选项并重启服务,否则会存在安全风险。此外,如果用户在操作过程中遇到问题,可能需要检查是否有其他MySQL实例在运行,或者配置文件的位置是否正确。最后,生成的相关问题应该围绕用户可能遇到的后续问题,比如不同系统的具体操作、密码修改后的登录问题、如何处理权限刷新失败等。这样可以帮助用户更全面地理解解决可能出现的其他问题。</think>### MySQL忘记root密码重置方法(不登录情况下) #### 步骤概览 1. **停止MySQL服务** 以管理员权限关闭MySQL服务,阻止身份验证流程。 - **Windows**:在命令提示符输入 `net stop mysql`[^1] - **Linux/Mac**:使用 `systemctl stop mysqld` 或 `sudo service mysql stop`[^2][^4] 2. **跳过权限验证启动MySQL** 通过特殊参数启动服务,绕过密码验证。 - **Windows**: ```bash mysqld --console --skip-grant-tables --shared-memory ``` 保持此窗口运行,另开新窗口操作[^1]。 - **Linux/Mac**: 编辑配置文件 `/etc/my.cnf` 或 `/etc/mysql/my.cnf`,在 `[mysqld]` 段添加: ```ini skip-grant-tables ``` 保存后重启服务:`systemctl restart mysqld`[^2][^4]。 3. **无密码登录并修改密码** 新开终端执行: ```bash mysql -u root ``` 进入后执行以下操作(注意版本差异): ```sql -- 刷新权限(必须执行) FLUSH PRIVILEGES; -- MySQL 5.7及以下版本 UPDATE mysql.user SET authentication_string = PASSWORD('新密码') WHERE User = 'root'; -- MySQL 8.0及以上版本 ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; ``` 完成后退出:`EXIT;`[^1][^2][^3]。 4. **恢复服务并验证** - **Windows**:关闭跳过权限的窗口,重启服务:`net start mysql`[^1]。 - **Linux/Mac**:删除配置文件中的 `skip-grant-tables`,重启服务[^2][^4]。 - 使用新密码登录: ```bash mysql -u root -p ``` #### 注意事项 - **权限刷新**:修改密码后必须执行 `FLUSH PRIVILEGES;`,否则可能报错 `ERROR 1045`[^3]。 - **安全风险**:操作完成后需移除 `skip-grant-tables` 参数,避免未授权访问。 - **密码强度**:MySQL 8.0默认要求强密码(含大小写字母、数字、符号)。 --- ###
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wang's Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值