Files
xlxumu/backend/api/test-db-connection.js

53 lines
1.7 KiB
JavaScript
Raw Normal View History

const mysql = require('mysql2/promise');
require('dotenv').config();
async function testConnection() {
console.log('🔍 测试数据库连接...');
console.log(`Host: ${process.env.DB_HOST}`);
console.log(`Port: ${process.env.DB_PORT}`);
console.log(`User: ${process.env.DB_USER}`);
console.log(`Database: ${process.env.DB_NAME}`);
const config = {
host: process.env.DB_HOST,
port: parseInt(process.env.DB_PORT),
user: process.env.DB_USER,
password: process.env.DB_PASSWORD,
database: process.env.DB_NAME,
connectTimeout: 60000,
acquireTimeout: 60000,
timeout: 60000
};
try {
console.log('📡 尝试连接...');
const connection = await mysql.createConnection(config);
console.log('✅ 连接成功!');
// 测试简单查询
const [rows] = await connection.execute('SELECT 1 as test');
console.log('✅ 查询测试成功:', rows);
// 测试数据库信息
const [version] = await connection.execute('SELECT VERSION() as version');
console.log('📝 MySQL版本:', version[0].version);
await connection.end();
console.log('✅ 连接正常关闭');
} catch (error) {
console.error('❌ 连接失败:');
console.error('错误代码:', error.code);
console.error('错误信息:', error.message);
console.error('错误详情:', error.sqlMessage || 'N/A');
if (error.code === 'ER_ACCESS_DENIED_ERROR') {
console.log('\n💡 可能的解决方案:');
console.log('1. 检查用户名和密码是否正确');
console.log('2. 确认用户有访问该数据库的权限');
console.log('3. 检查IP白名单是否包含当前服务器IP');
}
}
}
testConnection();