跳到主要内容
CNode

node.js mysql 建立连接、查询、释放连接问题

问答
Jjkiss发布于 10 年前最后回复 10 年前
977770

node建立mysql的连接池后,我是用的 pool.query ,直接进行查询的,那么查询后会自动释放连接吗?如果用 getConnection 方法,得主动调用 release() 方法来释放连接,但直接用连接池query呢?

查看回复

回复 (9)

J
jkiss#910 年前

实践证明 pool.query 如果不 release 的话的确会报错:Error: queryHTMLContentByInstanceId fail: Error: ER_CON_COUNT_ERROR: Too many connections

C
CoderIvan#810 年前

这里说了,只有getConnection的时候才需要释放

https://github.com/mysqljs/mysql#pooling-connections

untitled1.png

S
shadow88sky#710 年前

pool.query不需要释放连接

J
jkiss#610 年前
引用 zouzhenxing连接池也要主动release连接,否则会报错。你可以试试。

@zouzhenxing 这个要咋试?我理解是pool会根据每个连接状态释放连接

J
jkiss#510 年前
F
fangker#410 年前

@zouzhenxing 要主动释放么?我从没主动释放过

Z
zouzhenxing#310 年前

连接池也要主动release连接,否则会报错。你可以试试。

I
im-here#210 年前

我都是用的getConnection ,但是文档里好像说了用pool.query 是不用主动releasepool会自动release,两者用起来应该是没有什么差别的,但是如果你要是用事务之类的,要保证conn的安全的情况下,还是主动getConnection比较好

F
fangker#110 年前

连接池自动释放的,他会默认保持一些链接。

参与回复

登录后即可参与回复。登录