const mysql = require('mysql2/promise');

// 引入database.js配置
const dbConfig = require('../src/config/database').pool.config;

async function testNetworkConnection() {
  console.log('🌐 测试网络连接性...');
  
  // 使用从database.js导入的配置
  const config = dbConfig;

  try {
    console.log('🔗 尝试连接到:', config.host + ':' + config.port);
    
    const connection = await mysql.createConnection(config);
    console.log('✅ 网络连接成功！');
    
    await connection.end();
    return true;
    
  } catch (error) {
    console.error('❌ 网络连接失败:', error.message);
    console.log('🔍 错误代码:', error.code);
    
    if (error.code === 'ECONNREFUSED') {
      console.log('💡 可能原因: 端口未开放或服务未启动');
    } else if (error.code === 'ETIMEDOUT') {
      console.log('💡 可能原因: 网络超时或防火墙阻挡');
    } else if (error.code === 'ER_ACCESS_DENIED_ERROR') {
      console.log('💡 可能原因: 权限配置问题');
    }
    
    return false;
  }
}

// 执行测试
testNetworkConnection().then(success => {
  if (success) {
    console.log('🎉 网络连接测试完成');
  } else {
    console.log('⚠️  请检查网络配置和服务器状态');
  }
  process.exit(success ? 0 : 1);
});