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();