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); // 查询所有表 connection.query('SHOW TABLES', (error, results) => { if (error) { console.error('查询表失败: ' + error.stack); connection.end(); return; } console.log('数据库中的所有表:'); const tables = results.map(row => { const tableName = Object.values(row)[0]; console.log('- ' + tableName); return tableName; }); // 检查是否存在管理员表 const adminTableExists = tables.some(table => table.includes('admin') || table.includes('Admin') || table.includes('ADMIN') ); if (adminTableExists) { console.log('\n✅ 找到可能的管理员相关表'); // 显示管理员相关表结构 const adminTables = tables.filter(table => table.includes('admin') || table.includes('Admin') || table.includes('ADMIN') ); showTableStructure(adminTables, 0); } else { console.log('\n❌ 未找到管理员相关表'); // 显示所有表的简要信息 showAllTablesInfo(tables, 0); } }); // 显示表结构的递归函数 function showTableStructure(tables, index) { if (index >= tables.length) { connection.end(); return; } const tableName = tables[index]; console.log(`\n${tableName} 表结构:`); connection.query(`DESCRIBE ${tableName}`, (error, results) => { if (error) { console.error(`查询 ${tableName} 表结构失败: ` + error.stack); } else { console.table(results.map(row => ({ 字段: row.Field, 类型: row.Type, 空: row.Null, 键: row.Key, 默认值: row.Default, 额外: row.Extra }))); } showTableStructure(tables, index + 1); }); } // 显示所有表信息的递归函数 function showAllTablesInfo(tables, index) { if (index >= tables.length) { // 创建管理员表的SQL console.log('\n=== 建议创建的管理员表结构 ==='); const createAdminTableSQL = ` CREATE TABLE 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 );`; console.log(createAdminTableSQL); // 插入测试数据的SQL console.log('\n=== 插入测试数据 ==='); 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'); `; console.log(insertTestDataSQL); connection.end(); return; } const tableName = tables[index]; console.log(`\n${tableName} 表信息:`); connection.query(`SELECT COUNT(*) as count FROM ${tableName}`, (error, results) => { if (error) { console.error(`查询 ${tableName} 表数据量失败: ` + error.stack); } else { console.log(`数据量: ${results[0].count} 条`); } showAllTablesInfo(tables, index + 1); }); } });