MySQL完整重置密码流程(针对 macOS)

MySQL完整重置密码流程(针对 macOS)

1. 强制停止 MySQL 服务
bash 复制代码
sudo /usr/local/mysql/support-files/mysql.server stop
sudo killall mysqld mysqld_safe  # 确保所有进程停止
2. 以安全模式启动(跳过权限验证)
bash 复制代码
sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables --skip-networking &

等待 10 秒让服务完全启动(终端会卡住是正常的,不要关闭)

3. 无密码登录 MySQL
bash 复制代码
/usr/local/mysql/bin/mysql -u root
4. 重置密码(分版本操作)
sql 复制代码
-- 先刷新权限
FLUSH PRIVILEGES;

-- 针对 MySQL 8.0+ 版本
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';

-- 针对 MySQL 5.7 及更早版本
UPDATE mysql.user SET authentication_string=PASSWORD('你的新密码') WHERE User='root';
FLUSH PRIVILEGES;
5. 退出并重启服务
sql 复制代码
EXIT;  -- 退出 MySQL
bash 复制代码
sudo killall mysqld  # 停止安全模式
sudo /usr/local/mysql/support-files/mysql.server start  # 正常启动
6. 用新密码登录验证
bash 复制代码
/usr/local/mysql/bin/mysql -u root -p

常见问题解决方案

❌ 如果出现 mysqld_safe 路径错误
bash 复制代码
# 查找实际安装路径
sudo find / -name mysqld_safe 2>/dev/null

# 示例结果可能是:
# /usr/local/mysql-8.0.30-macos12-x86_64/bin/mysqld_safe
# 使用找到的路径替换命令
❌ 如果安全模式启动失败
bash 复制代码
# 检查错误日志(查看具体原因)
tail -n 50 /usr/local/mysql/data/*.err
❌ MySQL 8.0+ 特殊处理

若遇到 ERROR 1396,在安全模式下执行:

sql 复制代码
-- 先删除 root 用户再重建
DROP USER 'root'@'localhost';
CREATE USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
💡 使用 Homebrew 的额外命令
bash 复制代码
# 停止服务
brew services stop mysql

# 启动服务
brew services start mysql

⚠️ 操作全程需要管理员权限,确保每个 sudo 命令都输入了系统密码。如果仍遇到问题,请提供具体错误信息。

相关推荐
叫我龙翔21 小时前
【MySQL】从零开始了解数据库开发 --- 库的操作
数据库·mysql·数据库开发
pan3035074791 天前
mysql 回表查询(二次查询,如何检查,如何规避)
数据库·mysql
Sally璐璐1 天前
Go正则表达式实战指南
数据库·mysql·golang
一叶飘零_sweeeet1 天前
从 0 到 1 攻克订单表分表分库:亿级流量下的数据库架构实战指南
java·数据库·mysql·数据库架构·分库分表
苹果醋31 天前
数据库索引设计:在 MongoDB 中创建高效索引的策略
java·运维·spring boot·mysql·nginx
ホロHoro1 天前
学习笔记:MYSQL(4)
笔记·学习·mysql
计算机学长felix1 天前
基于Django的“酒店推荐系统”设计与开发(源码+数据库+文档+PPT)
数据库·python·mysql·django·vue
007php0071 天前
某大厂MySQL面试之SQL注入触点发现与SQLMap测试
数据库·python·sql·mysql·面试·职场和发展·golang
Craze_rd1 天前
腾讯云TDSQL-C 与传统MySQL对比
mysql·云计算·腾讯云
赛姐在努力.1 天前
Spring DI详解--依赖注入的三种方式及优缺点分析
java·mysql·spring