53 lines
1.3 KiB
JavaScript
53 lines
1.3 KiB
JavaScript
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;
|