gangbi_web/backend/utils/db.js

53 lines
1.3 KiB
JavaScript
Raw Normal View History

2025-02-07 05:10:01 +00:00
const mysql = require('mysql2/promise');
// 打印数据库连接配置(不包含密码)
console.log('Connecting to database:', {
host: process.env.DB_HOST,
user: process.env.DB_USER,
database: process.env.DB_DATABASE
});
const pool = mysql.createPool({
host: process.env.DB_HOST,
user: process.env.DB_USER,
password: process.env.DB_PASSWORD,
database: process.env.DB_DATABASE,
waitForConnections: true,
connectionLimit: 10,
queueLimit: 0,
// 添加额外的连接选项
connectTimeout: 10000, // 10 seconds
ssl: {
// 允许自签名证书
rejectUnauthorized: false
}
});
// 测试数据库连接
pool.getConnection()
.then(connection => {
console.log('Database connected successfully');
// 测试查询
return connection.query('SELECT 1')
.then(() => {
console.log('Database query test successful');
connection.release();
})
.catch(error => {
console.error('Database query test failed:', error);
connection.release();
throw error;
});
})
.catch(error => {
console.error('Database connection error:', {
code: error.code,
errno: error.errno,
sqlState: error.sqlState,
sqlMessage: error.sqlMessage
});
// 如果是致命错误,终止程序
process.exit(1);
});
module.exports = pool;