61 lines
1.8 KiB
JavaScript
61 lines
1.8 KiB
JavaScript
|
|
const bcrypt = require('bcryptjs');
|
|||
|
|
const { query } = require('./backend/src/config/database');
|
|||
|
|
|
|||
|
|
// 数据库配置
|
|||
|
|
const dbConfig = {
|
|||
|
|
host: '129.211.213.226',
|
|||
|
|
port: 9527,
|
|||
|
|
user: 'root',
|
|||
|
|
password: 'aiotAiot123!',
|
|||
|
|
database: 'jiebandata'
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
async function addTestAdmin() {
|
|||
|
|
try {
|
|||
|
|
// 加密密码
|
|||
|
|
const saltRounds = 10;
|
|||
|
|
const plainPassword = 'admin123';
|
|||
|
|
const hashedPassword = await bcrypt.hash(plainPassword, saltRounds);
|
|||
|
|
|
|||
|
|
console.log('加密后的密码:', hashedPassword);
|
|||
|
|
|
|||
|
|
// 插入测试管理员账户
|
|||
|
|
const insertSQL = `
|
|||
|
|
INSERT INTO admins (username, password, email, nickname, role)
|
|||
|
|
VALUES (?, ?, ?, ?, ?)
|
|||
|
|
ON DUPLICATE KEY UPDATE
|
|||
|
|
password = VALUES(password),
|
|||
|
|
email = VALUES(email),
|
|||
|
|
nickname = VALUES(nickname),
|
|||
|
|
role = VALUES(role)
|
|||
|
|
`;
|
|||
|
|
|
|||
|
|
const params = [
|
|||
|
|
'testadmin',
|
|||
|
|
hashedPassword,
|
|||
|
|
'testadmin@example.com',
|
|||
|
|
'测试管理员',
|
|||
|
|
'admin'
|
|||
|
|
];
|
|||
|
|
|
|||
|
|
// 注意:这里我们需要直接使用mysql2连接数据库,因为backend/src/config/database可能依赖环境变量
|
|||
|
|
const mysql = require('mysql2/promise');
|
|||
|
|
const connection = await mysql.createConnection(dbConfig);
|
|||
|
|
|
|||
|
|
const [result] = await connection.execute(insertSQL, params);
|
|||
|
|
console.log('✅ 测试管理员账户创建/更新成功');
|
|||
|
|
console.log('受影响的行数:', result.affectedRows);
|
|||
|
|
|
|||
|
|
// 验证插入的数据
|
|||
|
|
const [rows] = await connection.execute('SELECT * FROM admins WHERE username = ?', ['testadmin']);
|
|||
|
|
console.log('\n插入的管理员信息:');
|
|||
|
|
console.log(rows[0]);
|
|||
|
|
|
|||
|
|
await connection.end();
|
|||
|
|
} catch (error) {
|
|||
|
|
console.error('❌ 创建测试管理员账户失败:', error.message);
|
|||
|
|
console.error(error.stack);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
addTestAdmin();
|