苹果CMS 忘记后台密码怎么通过数据库修改?
用一条 SQL 就能把苹果CMS后台密码重置成你指定的新密码,并且知道该找哪张表、哪个字段,不用重装、不用改源码。
第一步:先找到数据库账号和表前缀
这一步要拿到数据库连接信息,顺便确认表前缀。打开网站根目录下的 application/database.php(苹果CMS V10 用 ThinkPHP 5,配置文件就在这个路径),找到这几行:
'hostname' => '127.0.0.1',
'database' => 'www_xxx_com',
'username' => 'www_xxx_com',
'password' => '这里就是数据库密码',
'prefix' => 'mac_',
记下 database、username、password 和 prefix。默认前缀是 mac_,所以管理员表就是 mac_admin。
注意:数据库密码不是后台密码,别搞混。如果
database.php里的密码也忘了,只能在宝塔面板或服务器上重置数据库用户密码。
第二步:连上数据库
这一步要打开一个能执行 SQL 的界面。三种常见方式,选一个:
- 宝塔面板:左侧菜单「数据库」→ 找到对应库 → 点右侧「管理」,会打开 phpMyAdmin,顶部点「SQL」标签页。
- 本地用 Navicat / DBeaver:新建 MySQL 连接,主机填
127.0.0.1(数据库和网站在同一台机器时),端口3306,填用户名密码后连接。 - 命令行:
mysql -u用户名 -p 库名,回车后输密码。
注意:如果宝塔里 phpMyAdmin 打不开,检查 888 端口是否放行;这只影响面板里的 phpMyAdmin,不影响你直接用 Navicat 连。
第三步:确认管理员账号和盐值字段
这一步要确认后台登录名,以及密码是不是加了盐。执行:
SELECT admin_id, admin_name, admin_random, admin_status FROM mac_admin;
如果报「表不存在」,先执行 SHOW TABLES LIKE '%admin%'; 看看实际表名,把 mac_ 换成你的前缀。默认账号通常是 admin。
admin_random 这一列是关键:苹果CMS V10 的密码不是简单的 MD5,而是 md5( md5(明文密码) + admin_random ),也就是加了一层随机盐。
注意:如果你的表里根本没有
admin_random字段,说明是老版本(V8 一类),密码是单层 MD5,直接用admin_pwd = MD5('新密码')即可。
第四步:用一条 SQL 重置密码
这一步把密码改成 123456(示例,改完请立刻换掉)。执行:
UPDATE mac_admin
SET admin_pwd = MD5(CONCAT(MD5('123456'), admin_random))
WHERE admin_name = 'admin';
MySQL 内置的 MD5() 函数和 PHP 的 md5() 结果一致,都是 32 位小写十六进制,所以能在数据库里直接算。
如果 admin_random 是空的,上面这句等价于双层 MD5。123456 的双层 MD5 是 14e1b600b1fd579f47433b88e8d85291,你也可以直接写:
UPDATE mac_admin
SET admin_pwd = '14e1b600b1fd579f47433b88e8d85291', admin_random = ''
WHERE admin_name = 'admin';
注意:最常见的坑就是把
admin_pwd直接写成e10adc3949ba59abbe56e057f20f883e(123456的单层 MD5)。在 V10 上这样写一定登录失败,因为程序还会再拼一次盐。
第五步:顺手把挡住登录的状态字段清掉
这一步防止「密码对了但仍然进不去」。执行:
UPDATE mac_admin SET admin_status = 1 WHERE admin_name = 'admin';
如果后台开了登录 IP 白名单或登录验证,mac_admin 里可能有 admin_login_ip、admin_login_num 之类的字段。先看一眼结构:
DESC mac_admin;
有可疑的 IP、次数、锁定字段就一并清空,比如:
UPDATE mac_admin SET admin_login_ip = '', admin_login_num = 0 WHERE admin_name = 'admin';
注意:字段名照
DESC的实际结果写,不要照抄本文。字段不存在会直接报错。
第六步:登录后台并重新设置密码
浏览器打开 你的域名/admin.php(V10 默认后台入口,部分站点改过入口文件名,可以看根目录下有没有 admin.php、manage.php 之类),用 admin + 123456 登录。
登录成功后,进入菜单「系统」→「管理员」,找到自己那条记录点「修改」,把密码换成你自己的新密码并保存——这一步会让程序重新生成 admin_random,把盐恢复成随机值。
如果页面样式错乱或提示异常,到「系统」→「缓存管理」里清一次缓存(不同小版本菜单名略有差异,找带「缓存」二字的菜单即可)。
注意:重置期间网站后台是「弱密码」状态,改完密码后建议把本次的 SQL 记录、浏览器历史清理一下。另外别忘了在「管理员」里确认没有多余的陌生账号。
小结
- 数据库账号和表前缀在
application/database.php里,V10 默认前缀mac_,管理员表是mac_admin。 - V10 密码规则是
md5(md5(明文) + admin_random),用UPDATE mac_admin SET admin_pwd = MD5(CONCAT(MD5('新密码'), admin_random))一条搞定。 - 只写单层 MD5 是最常见的失败原因;没有
admin_random字段才是单层 MD5。 - 别忘
admin_status = 1,以及清掉 IP 白名单、登录次数这类锁定字段。 - 登录成功后第一件事:在「系统 → 管理员」里把密码重新设成自己的,让盐值重新随机生成。
原文链接:https://www.gj0.com/thread-14.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。