Files
jiebanke/backend/scripts/test-dev-connection.js

58 lines
1.8 KiB
JavaScript
Raw Normal View History

const mysql = require('mysql2/promise');
2025-09-11 15:05:23 +08:00
// 引入database.js配置
const dbConfig = require('../src/config/database').pool.config;
async function testDevConnection() {
console.log('🧪 测试开发环境数据库连接...');
2025-09-11 15:05:23 +08:00
// 使用从database.js导入的配置
const config = dbConfig;
try {
2025-09-11 15:05:23 +08:00
console.log('🔗 尝试连接到开发服务器:', config.host + ':' + config.port);
2025-09-11 15:05:23 +08:00
const connection = await mysql.createConnection(config);
console.log('✅ 开发环境连接成功!');
// 测试基本查询
const [rows] = await connection.execute('SELECT 1 as test');
console.log('✅ 基本查询测试通过');
// 检查表结构
const [tables] = await connection.execute(`
2025-09-11 15:05:23 +08:00
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = ?
`, [config.database]);
console.log('📊 数据库中的表:', tables.map(t => t.TABLE_NAME).join(', ') || '暂无表');
await connection.end();
console.log('🎉 开发环境测试完成');
return true;
} catch (error) {
console.error('❌ 开发环境连接失败:', error.message);
console.log('🔍 错误代码:', error.code);
if (error.code === 'ECONNREFUSED') {
console.log('💡 可能原因: 开发服务器未启动或网络不可达');
} else if (error.code === 'ER_ACCESS_DENIED_ERROR') {
console.log('💡 可能原因: 用户名或密码错误');
} else if (error.code === 'ER_BAD_DB_ERROR') {
console.log('💡 可能原因: 数据库不存在');
}
return false;
}
}
// 执行测试
testDevConnection().then(success => {
if (success) {
console.log('\n✅ 所有测试通过!开发环境配置正确');
} else {
console.log('\n⚠ 开发环境配置需要检查');
}
process.exit(success ? 0 : 1);
});