const mysql = require('mysql2'); // 测试环境数据库配置(先不指定数据库) const testConfig = { host: '192.168.0.240', port: 3306, user: 'root', password: 'aiot$Aiot123' }; // 生产环境数据库配置(先不指定数据库) const prodConfig = { host: '129.211.213.226', port: 9527, user: 'root', password: 'aiotAiot123!' }; function testConnection(config, environment) { return new Promise((resolve) => { console.log(`\n🔗 正在测试 ${environment} 数据库连接...`); console.log(`主机: ${config.host}`); console.log(`端口: ${config.port}`); // 创建连接 const connection = mysql.createConnection(config); connection.connect((err) => { if (err) { console.error('❌ 数据库连接失败:', err.message); connection.end(); return resolve({ success: false, error: err.message }); } console.log('✅ 数据库连接成功!'); // 测试查询 console.log('📊 执行测试查询...'); connection.query('SELECT 1 as test_result', (err, rows) => { if (err) { console.error('❌ 测试查询失败:', err.message); connection.end(); return resolve({ success: false, error: err.message }); } console.log('✅ 测试查询成功:', rows[0]); // 获取数据库版本 connection.query('SELECT VERSION() as version', (err, versionRows) => { if (err) { console.error('❌ 获取版本失败:', err.message); connection.end(); return resolve({ success: false, error: err.message }); } console.log('📋 MySQL版本:', versionRows[0].version); // 检查所有数据库 connection.query('SHOW DATABASES', (err, databases) => { if (err) { console.error('❌ 获取数据库列表失败:', err.message); connection.end(); return resolve({ success: false, error: err.message }); } console.log('\n📋 所有数据库:'); console.log('='.repeat(40)); databases.forEach(db => { console.log(db.Database); }); // 检查jiebandata数据库是否存在 const jiebandataExists = databases.some(db => db.Database === 'jiebandata'); console.log(`\n📊 jiebandata数据库: ${jiebandataExists ? '✅ 存在' : '❌ 不存在'}`); if (jiebandataExists) { // 获取jiebandata数据库中的表 connection.query(` SELECT TABLE_NAME, TABLE_ROWS, CREATE_TIME, UPDATE_TIME FROM information_schema.tables WHERE table_schema = 'jiebandata' ORDER BY TABLE_NAME `, (err, tables) => { if (err) { console.error('❌ 获取表信息失败:', err.message); connection.end(); return resolve({ success: false, error: err.message }); } console.log(`\n📋 jiebandata数据库中的表:`); console.log('='.repeat(80)); console.log('表名'.padEnd(25) + '行数'.padEnd(10) + '创建时间'.padEnd(20) + '更新时间'); console.log('='.repeat(80)); if (tables.length === 0) { console.log('暂无表'); } else { tables.forEach(table => { console.log( table.TABLE_NAME.padEnd(25) + (table.TABLE_ROWS || '0').toString().padEnd(10) + (table.CREATE_TIME ? new Date(table.CREATE_TIME).toLocaleString() : 'N/A').padEnd(20) + (table.UPDATE_TIME ? new Date(table.UPDATE_TIME).toLocaleString() : 'N/A') ); }); } // 关闭连接 connection.end(); console.log('\n✅ 连接已正常关闭'); resolve({ success: true, databaseExists: jiebandataExists, tables: tables.length }); }); } else { // 关闭连接 connection.end(); console.log('\n✅ 连接已正常关闭'); resolve({ success: true, databaseExists: false, tables: 0 }); } }); }); }); }); }); } async function main() { console.log('🚀 开始测试结伴客系统数据库连接'); console.log('='.repeat(60)); // 测试测试环境 const testResult = await testConnection(testConfig, '测试环境'); console.log('\n' + '='.repeat(60)); // 测试生产环境 const prodResult = await testConnection(prodConfig, '生产环境'); console.log('\n' + '='.repeat(60)); console.log('📋 测试结果汇总:'); console.log('测试环境:', testResult.success ? '✅ 成功' : '❌ 失败'); console.log('生产环境:', prodResult.success ? '✅ 成功' : '❌ 失败'); if (testResult.success && testResult.tables > 0) { console.log(`测试环境表数量: ${testResult.tables}`); } if (prodResult.success && prodResult.tables > 0) { console.log(`生产环境表数量: ${prodResult.tables}`); } } // 运行测试 main().catch(console.error); // 导出测试函数供其他模块使用 module.exports = { testConnection, testConfig, prodConfig };