53 lines
1.7 KiB
JavaScript
53 lines
1.7 KiB
JavaScript
|
|
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();
|