# 管理员账号创建快速参考 ## 🚀 快速开始 ### 方法1:使用SQL脚本(最简单) ```bash # 执行SQL脚本 mysql -u root -p books_db < book/src/main/resources/db/create_admin_account.sql ``` **默认账号:** - 用户名:`admin` - 密码:`admin123` --- ### 方法2:使用Java代码 #### 在测试类中使用 ```java @SpringBootTest public class MyTest { @Autowired private AdminAccountUtil adminAccountUtil; @Test public void createAdmin() { // 创建默认管理员 adminAccountUtil.createDefaultAdmin(); // 或创建自定义管理员 adminAccountUtil.createAdmin("myadmin", "mypassword123", "我的管理员"); } } ``` #### 在Controller中使用 ```java @RestController public class AdminController { @Autowired private AdminAccountUtil adminAccountUtil; @PostMapping("/init") public String init() { return adminAccountUtil.createDefaultAdmin(); } } ``` --- ### 方法3:直接执行SQL ```sql USE books_db; -- 创建管理员账号 INSERT INTO `users` (`username`, `nickname`, `password`, `role`, `status`, `created_at`, `updated_at`) SELECT 'admin', '管理员', '0192023a7bbd73250516f069df18b500', 'admin', 1, NOW(), NOW() WHERE NOT EXISTS (SELECT 1 FROM `users` WHERE `username` = 'admin'); ``` --- ## 📋 常用操作 ### 创建管理员 **SQL方式:** ```sql INSERT INTO `users` (`username`, `nickname`, `password`, `role`, `status`, `created_at`, `updated_at`) SELECT 'admin', '管理员', MD5('admin123'), 'admin', 1, NOW(), NOW() WHERE NOT EXISTS (SELECT 1 FROM `users` WHERE `username` = 'admin'); ``` **Java方式:** ```java adminAccountUtil.createAdmin("admin", "admin123", "管理员"); ``` --- ### 修改密码 **SQL方式:** ```sql UPDATE users SET password = MD5('newpassword123'), updated_at = NOW() WHERE username = 'admin' AND role = 'admin'; ``` **Java方式:** ```java adminAccountUtil.updateAdminPassword("admin", "newpassword123"); ``` --- ### 将普通用户升级为管理员 **SQL方式:** ```sql UPDATE users SET role = 'admin', updated_at = NOW() WHERE username = '普通用户名'; ``` **Java方式:** ```java adminAccountUtil.upgradeToAdmin("普通用户名"); ``` --- ### 禁用/启用管理员 **SQL方式:** ```sql -- 禁用 UPDATE users SET status = 0 WHERE username = 'admin' AND role = 'admin'; -- 启用 UPDATE users SET status = 1 WHERE username = 'admin' AND role = 'admin'; ``` **Java方式:** ```java // 禁用 adminAccountUtil.disableAdmin("admin"); // 启用 adminAccountUtil.enableAdmin("admin"); ``` --- ### 查询所有管理员 ```sql SELECT id, username, nickname, role, status, created_at FROM users WHERE role = 'admin'; ``` --- ## 🔑 密码MD5值计算 ### 在线工具 - https://www.md5hashgenerator.com/ - https://md5jiami.bmcx.com/ ### MySQL函数 ```sql SELECT MD5('your_password'); ``` ### Java代码 ```java String encrypted = PasswordUtil.encrypt("your_password"); System.out.println(encrypted); ``` --- ## ✅ 验证管理员账号 ### 1. 查询数据库 ```sql SELECT * FROM users WHERE username = 'admin' AND role = 'admin'; ``` ### 2. 测试登录接口 ```bash curl -X POST http://localhost:8081/api/admin/login \ -H "Content-Type: application/json" \ -d '{"username":"admin","password":"admin123"}' ``` ### 3. 使用后台管理系统 访问:`http://localhost:8081/pages/login.html` 使用账号密码登录 --- ## 📝 默认账号信息 | 项目 | 值 | |------|-----| | 用户名 | `admin` | | 密码 | `admin123` | | 密码MD5 | `0192023a7bbd73250516f069df18b500` | | 角色 | `admin` | | 状态 | `1` (激活) | --- ## ⚠️ 注意事项 1. **首次部署后立即修改默认密码** 2. **使用强密码**(至少8位,包含大小写字母、数字、特殊字符) 3. **定期更换密码**(建议每3-6个月) 4. **限制管理员数量**(只创建必要的管理员) 5. **生产环境删除或保护创建接口** --- ## 📚 详细文档 查看完整指南:`book/创建管理员账号完整指南.md` --- **快速参考版本:** 2024年