85 lines
2.6 KiB
JavaScript
85 lines
2.6 KiB
JavaScript
const mysql = require('mysql2');
|
||
|
||
// 数据库配置
|
||
const dbConfig = {
|
||
host: '129.211.213.226',
|
||
port: 9527,
|
||
user: 'root',
|
||
password: 'aiotAiot123!',
|
||
database: 'jiebandata'
|
||
};
|
||
|
||
// 创建连接
|
||
const connection = mysql.createConnection(dbConfig);
|
||
|
||
// 连接数据库
|
||
connection.connect((err) => {
|
||
if (err) {
|
||
console.error('数据库连接失败: ' + err.stack);
|
||
return;
|
||
}
|
||
console.log('数据库连接成功,连接ID: ' + connection.threadId);
|
||
|
||
// 创建管理员表
|
||
const createAdminTableSQL = `
|
||
CREATE TABLE IF NOT EXISTS admins (
|
||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||
username VARCHAR(50) NOT NULL UNIQUE,
|
||
password VARCHAR(255) NOT NULL,
|
||
email VARCHAR(100) UNIQUE,
|
||
nickname VARCHAR(100),
|
||
avatar VARCHAR(255),
|
||
role ENUM('super_admin', 'admin', 'operator') DEFAULT 'admin',
|
||
status TINYINT DEFAULT 1,
|
||
last_login TIMESTAMP NULL,
|
||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
INDEX idx_username (username),
|
||
INDEX idx_email (email),
|
||
INDEX idx_role (role)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||
`;
|
||
|
||
connection.query(createAdminTableSQL, (error, results) => {
|
||
if (error) {
|
||
console.error('创建管理员表失败: ' + error.stack);
|
||
connection.end();
|
||
return;
|
||
}
|
||
|
||
console.log('✅ 管理员表创建成功');
|
||
|
||
// 检查是否已存在测试数据
|
||
connection.query('SELECT COUNT(*) as count FROM admins', (error, results) => {
|
||
if (error) {
|
||
console.error('查询管理员表数据量失败: ' + error.stack);
|
||
connection.end();
|
||
return;
|
||
}
|
||
|
||
if (results[0].count > 0) {
|
||
console.log('✅ 管理员表中已有数据,跳过插入测试数据');
|
||
connection.end();
|
||
return;
|
||
}
|
||
|
||
// 插入测试数据
|
||
const insertTestDataSQL = `
|
||
INSERT INTO admins (username, password, email, nickname, role) VALUES
|
||
('admin', '$2b$10$rVuz/q97ocR1Zb07DzW5F.9Qx6B6HnV7JFzQb5nR1W3v7Z2mH4n6O', 'admin@example.com', '超级管理员', 'super_admin'),
|
||
('operator', '$2b$10$rVuz/q97ocR1Zb07DzW5F.9Qx6B6HnV7JFzQb5nR1W3v7Z2mH4n6O', 'operator@example.com', '操作员', 'operator');
|
||
`;
|
||
|
||
connection.query(insertTestDataSQL, (error, results) => {
|
||
if (error) {
|
||
console.error('插入测试数据失败: ' + error.stack);
|
||
connection.end();
|
||
return;
|
||
}
|
||
|
||
console.log('✅ 测试数据插入成功,插入 ' + results.affectedRows + ' 条记录');
|
||
connection.end();
|
||
});
|
||
});
|
||
});
|
||
}); |