12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- const mysql = require('mysql2/promise');
- require('dotenv').config();
- // 创建连接池
- const poolConfig = {
- host: process.env.DB_HOST || 'localhost',
- user: process.env.DB_USER || 'root',
- password: process.env.DB_PASSWORD || '1234',
- database: process.env.DB_NAME || 'recruitment_system',
- port: parseInt(process.env.DB_PORT) || 3307, // 确保端口是数字
- waitForConnections: true,
- connectionLimit: 10,
- queueLimit: 0
- };
- const pool = mysql.createPool(poolConfig);
- // 增强版连接测试函数
- const testConnection = async () => {
- let connection;
- try {
- console.log('🔄 正在尝试连接数据库...');
- console.log('连接参数:', {
- host: poolConfig.host,
- user: poolConfig.user,
- database: poolConfig.database,
- port: poolConfig.port
- });
-
- connection = await pool.getConnection();
- console.log('✅ 成功获取数据库连接');
-
- const [rows] = await connection.query('SELECT 1 + 1 AS result');
- console.log('测试查询结果:', rows[0].result);
-
- return true;
- } catch (error) {
- console.error('❌ 数据库连接失败:');
- console.error('错误信息:', error.message);
- console.error('错误代码:', error.code);
-
- // 更详细的错误诊断
- if (error.code === 'ER_ACCESS_DENIED_ERROR') {
- console.error('可能原因: 用户名或密码错误');
- } else if (error.code === 'ECONNREFUSED') {
- console.error('可能原因: MySQL服务未启动或端口错误');
- }
-
- return false;
- } finally {
- if (connection) connection.release();
- }
- };
- module.exports = {
- pool,
- testConnection
- };
|