我使用Meteor.js,Apollo / GraphQL和带有mysql npm包的MySQL数据库作为驱动程序。
我正在创建一个连接池,如下所示:
import { createPool } from 'mysql';
const pool = createPool({
host: 'localhost',
user: 'root',
password: 'asdfasdf',
database: 'soundcraft',
});
export function query(sql) {
// const connection = this;
return new Promise((resolve, reject) => {
pool.query(sql, (err, results) => {
if (err) {
reject(err);
} else {
resolve(results);
}
});
});
}
我不确定发生了什么,但是在一些数据库请求(等于连接限制)之后,它只会冻结并且不会报告任何错误,并且它会一直冻结,直到服务器重新启动。
编辑:经过一些阅读并找到this issue后,它似乎与发布的连接无关,而是由MySQL连接保持打开的事实。
仅增加连接限制似乎是不切实际的,因为最终用户仍然会用完他们的连接限制。
看起来我并没有以正确的方式解决这个问题