小皮面板 MySQL 密码忘了怎么重置?
忘记 MySQL 密码不用重装数据库,照着这篇走一遍,你能把 root 密码改回来并让网站重新连上数据库。
第一步:先确认你用的是哪个「小皮」
小皮面板有两套产品,重置方式完全不同,走错就白折腾:
- Windows 客户端版(phpStudy v8):装在你自己电脑上,打开是一个带「首页/网站/数据库/软件管理/设置」左侧菜单的窗口,托盘有个小图标。
- Linux 服务器版(小皮面板):装在服务器上,通过浏览器访问
http://服务器IP:9999(以安装完成时终端打印的地址为准),界面像宝塔。
下面第二、三步对应这两种情况,第四步两者通用。
第二步:面板还能登录,直接在面板里改
Windows phpStudy v8:打开主界面 → 左侧点「数据库」→ 找到 MySQL 那一行(比如 MySQL 8.0.12)→ 点右侧的「修改密码」按钮(部分小版本写作「密码修改」)→ 输入新密码 → 确定 → 回到首页把 MySQL 状态切到「停止」再切回「启动」。
Linux 小皮面板:浏览器登录面板 → 左侧「数据库」→ 顶部有「root密码」按钮 → 输入新密码 → 确定。面板会自己把新密码写进 MySQL 配置并重启服务。
注意:面板里改完,网站还是连不上,是因为网站的配置文件(比如 WordPress 的
wp-config.php、ThinkPHP 的database.php)里还写着旧密码,要一并改掉。
第三步:面板也进不去,用 skip-grant-tables 强制重置
这是最通用的兜底方案,原理是让 MySQL 启动时跳过密码校验,进去改完再恢复正常。
Windows 版操作:
- 在 phpStudy 面板把 MySQL 点「停止」。
- 打开 MySQL 安装目录下的
my.ini(phpStudy 里在phpstudy_pro\Extensions\MySQL8.0.12\my.ini),在[mysqld]这一行下面另起一行加skip-grant-tables,保存。 - 在面板里把 MySQL 点「启动」。
- 以管理员身份打开 cmd,执行
mysql -uroot -p,提示输密码时直接回车。 - 按版本执行下面之一,然后关掉
skip-grant-tables那一行,重启 MySQL。
Linux 小皮面板操作:
ps aux | grep mysqld # 看 --defaults-file= 后面的配置文件路径
pkill -9 mysqld
vi /www/server/mysql/my.cnf # 在 [mysqld] 下加一行 skip-grant-tables
# 用面板或 init 脚本重新启动 MySQL
mysql -uroot # 此时免密可进
进去之后按你的 MySQL 版本执行:
MySQL 5.7:
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Xp123456!';
MySQL 8.0:
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Xp123456!';
注意:MySQL 8.0 已经没有
password字段,执行UPDATE mysql.user SET password=...会直接报Unknown column 'password'。5.7 用authentication_string字段或上面这条ALTER USER都行。注意:在
skip-grant-tables模式下不能直接ALTER USER,必须先执行一次FLUSH PRIVILEGES;才行。注意:MySQL 8.0 默认密码策略要求至少 8 位、含大小写字母、数字和符号,
123456这种会被拒绝。注意:
skip-grant-tables期间任何人都能免密登录数据库。如果服务器有公网 IP,改完立刻删掉这行并重启;实在担心,先临时关掉 3306 端口的外网放行规则。
第四步:验证并同步各处密码
- 命令行验证:
mysql -uroot -p新密码,能进则成功。 - 回面板「数据库」页把 root 密码也改成同一个(面板自己存了一份,用于它内部的连接,不改会出现「面板显示数据库正常但实际连不上」)。
- 逐个改网站配置文件里的数据库密码,重启 PHP/Nginx。
小结
- 先分清是 Windows phpStudy v8 还是 Linux 小皮面板,前者在「数据库」页点「修改密码」,后者在「数据库」页点「root密码」。
- 面板进不去就用
skip-grant-tables:停服务 → 配置文件加一行 → 启动 → 免密登录 →FLUSH PRIVILEGES+ALTER USER→ 删掉那行 → 重启。 - MySQL 8.0 没有
password字段,别用老教程里的UPDATE语句。 - 改完密码只是第一步,面板里的记录、网站配置文件都要同步改,否则照样连不上。
原文链接:https://www.gj0.com/thread-1546.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。