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

发布于:2025-08-17 ⋅ 阅读:(19) ⋅ 点赞:(0)

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

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

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

3. 无密码登录 MySQL
/usr/local/mysql/bin/mysql -u root
4. 重置密码(分版本操作)
-- 先刷新权限
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. 退出并重启服务
EXIT;  -- 退出 MySQL
sudo killall mysqld  # 停止安全模式
sudo /usr/local/mysql/support-files/mysql.server start  # 正常启动
6. 用新密码登录验证
/usr/local/mysql/bin/mysql -u root -p

常见问题解决方案

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

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

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

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

# 启动服务
brew services start mysql

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


网站公告

今日签到

点亮在社区的每一天
去签到