1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- const { Sequelize } = require('sequelize');
- const config = require('./config/config.json').development;
- console.log('Docker数据库配置:', {
- host: config.host,
- database: config.database,
- username: config.username,
- dialect: config.dialect
- });
- const sequelize = new Sequelize(config.database, config.username, config.password, {
- host: config.host,
- dialect: config.dialect,
- logging: console.log,
- pool: {
- max: 5,
- min: 0,
- acquire: 30000,
- idle: 10000
- },
- dialectOptions: {
- ssl: false,
- connectTimeout: 60000
- }
- });
- async function testDockerConnection() {
- try {
- console.log('\n正在测试Docker数据库连接...');
- await sequelize.authenticate();
- console.log('✅ Docker数据库连接成功!');
-
- // 测试查询
- console.log('\n正在测试查询...');
- const [results] = await sequelize.query('SELECT 1 as test, NOW() as current_time');
- console.log('✅ 查询测试成功:', results);
-
- // 检查数据库版本
- const [version] = await sequelize.query('SELECT VERSION() as version');
- console.log('MySQL版本:', version[0].version);
-
- // 测试连接池状态
- console.log('\n连接池状态:');
- console.log('- 总连接数:', sequelize.connectionManager.pool.size);
- console.log('- 可用连接数:', sequelize.connectionManager.pool.available);
- console.log('- 使用中连接数:', sequelize.connectionManager.pool.using);
- console.log('- 等待连接数:', sequelize.connectionManager.pool.waiting);
-
- } catch (error) {
- console.error('❌ Docker数据库连接失败:');
- console.error('错误类型:', error.name);
- console.error('错误代码:', error.code || error.original?.code);
- console.error('错误消息:', error.message);
-
- if (error.code === 'ECONNREFUSED') {
- console.error('\n🔍 连接被拒绝分析:');
- console.error('- Docker MySQL容器可能未启动');
- console.error('- 端口3306可能被占用');
- console.error('- 建议检查: docker ps | grep mysql');
- }
-
- } finally {
- await sequelize.close();
- console.log('\n数据库连接已关闭');
- }
- }
- testDockerConnection();
|