const mysql = require('mysql2/promise'); require('dotenv').config(); async function testConnection() { const config = { host: process.env.DB_HOST || '129.211.213.226', port: process.env.DB_PORT || 3306, user: process.env.DB_USER || 'root', password: process.env.DB_PASSWORD || 'Aiotagro@741', database: process.env.DB_NAME || 'nxTest', connectTimeout: 10000, acquireTimeout: 10000, timeout: 10000 }; console.log('尝试连接数据库...'); console.log('配置:', { host: config.host, port: config.port, user: config.user, database: config.database }); try { const connection = await mysql.createConnection(config); console.log('✅ 数据库连接成功!'); // 测试查询 const [rows] = await connection.execute('SELECT 1 as test'); console.log('✅ 查询测试成功:', rows); // 获取数据库信息 const [dbInfo] = await connection.execute('SELECT DATABASE() as current_db, VERSION() as version'); console.log('✅ 数据库信息:', dbInfo); await connection.end(); console.log('✅ 连接已关闭'); } catch (error) { console.error('❌ 数据库连接失败:'); console.error('错误代码:', error.code); console.error('错误消息:', error.message); console.error('完整错误:', error); // 提供一些常见错误的解决方案 if (error.code === 'ECONNREFUSED') { console.log('\n💡 可能的解决方案:'); console.log('1. 检查MySQL服务是否正在运行'); console.log('2. 检查端口3306是否开放'); console.log('3. 检查防火墙设置'); } else if (error.code === 'ER_ACCESS_DENIED_ERROR') { console.log('\n💡 可能的解决方案:'); console.log('1. 检查用户名和密码是否正确'); console.log('2. 检查用户是否有远程访问权限'); } else if (error.code === 'ER_BAD_DB_ERROR') { console.log('\n💡 可能的解决方案:'); console.log('1. 检查数据库名称是否正确'); console.log('2. 检查数据库是否存在'); } } } testConnection();