Mysql2:关闭客户端连接

Mar*_*rco 5 ruby database connection client mysql2

Mysql2用来查询数据库ruby.我通过以下方式初始化连接:

client = Mysql2::Client.new(:host => "localhost", :database => 'mydb', :username => "root")
Run Code Online (Sandbox Code Playgroud)

查询成功完成后,如何关闭客户端连接?如果我不关闭它,我很快就会达到最大可能的打开连接数.

感谢@joonty:

client.close

Jon*_*rns 7

使用client.close.来自文档:

Mysql2 ::客户#关闭

立即断开与服务器的连接,通常垃圾收集器将在不再需要连接时自动断开连接.明确关闭它将比等待垃圾收集器更快地释放服务器资源.

您是否有多个长时间运行的进程只能在短时间内使用mysql连接?这应该是这是一个问题的唯一情况.如果您的进程正在结束,那么连接将作为垃圾收集的一部分关闭,因此您的问题出在其他地方.

  • 谢谢,但我无法解决我的问题。我需要 API 中的`MySql2::Client` 来对数据库进行简单的查询。所以,我不认为这个问题涉及多个长时间运行的进程。基本上,每当一个 `get` 请求完成时,就会打开一个新的 `MySql2::Client` 并执行查询。我现在在每个请求后都添加了 `cient.close`,但我仍然有同样的问题:打开的连接太多。 (2认同)
  • 我也是,我有同样的问题。关于如何解决这个问题的任何想法? (2认同)