# 在book项目根目录执行
mysql -u root -p books_db < src/main/resources/db/fix_admin_user_safe.sql
这个脚本会自动检查字段和索引是否存在,不会因为重复执行而报错。
# 在book项目根目录执行
mysql -u root -p books_db < src/main/resources/db/fix_admin_user.sql
注意: 如果role字段已存在,此脚本可能会报错,可以忽略错误继续执行。
-- 1. 连接到MySQL
mysql -u root -p books_db
-- 2. 检查admin用户是否存在
SELECT id, username, password, role, status
FROM users
WHERE username = 'admin';
-- 3. 如果admin用户存在但信息不正确,更新它
UPDATE `users`
SET
`password` = '0192023a7bbd73250516f069df18b500',
`role` = 'admin',
`status` = 1,
`updated_at` = NOW()
WHERE `username` = 'admin';
-- 4. 如果admin用户不存在,创建它
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');
-- 5. 验证
SELECT id, username, password, role, status
FROM `users`
WHERE `username` = 'admin';
SELECT id, username, password, role, status
FROM users
WHERE username = 'admin';
管理员账号应该满足:
username = 'admin'password = '0192023a7b'role = 'admin'status = 1SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'books_db'
AND TABLE_NAME = 'users'
AND COLUMN_NAME = 'role';
如果查询结果为空,说明role字段不存在,需要执行:
ALTER TABLE `users`
ADD COLUMN `role` VARCHAR(20) DEFAULT 'user' COMMENT '用户角色:admin-管理员,user-普通用户' AFTER `status`;
执行以下SQL验证管理员账号:
SELECT
username,
password,
role,
status,
CASE
WHEN password = '0192023a7bbd73250516f069df18b500' AND role = 'admin' AND status = 1
THEN '✅ 账号信息正确'
ELSE '❌ 账号信息不正确'
END AS status_check
FROM `users`
WHERE `username` = 'admin';
0192023a7b检查方法:
访问 http://localhost:8081/api/admin/login
解决:
cd book
mvn spring-boot:run
检查方法: 查看后端服务启动日志
解决:
检查 application.properties 中的数据库配置:
spring.datasource.url=jdbc:mysql://localhost:3306/books_db?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
spring.datasource.username=root
spring.datasource.password=root
检查方法:
测试 PasswordUtil.encrypt("admin123") 是否返回 0192023a7bbd73250516f069df18b500
解决: 确保数据库中的密码是MD5加密后的值。
检查数据库连接
mysql -u root -p books_db
执行修复脚本
mysql -u root -p books_db < book/src/main/resources/db/fix_admin_user_safe.sql
验证管理员账号
SELECT id, username, role, status FROM users WHERE username = 'admin';
重启后端服务
cd book
mvn spring-boot:run
测试登录
http://localhost:8000/pages/login.html双击运行:book-admin/一键修复登录问题.bat
chmod +x book-admin/一键修复登录问题.sh
./book-admin/一键修复登录问题.sh