使用Jupyter SQL Magic时如何关闭连接?

时间:2018-12-22 11:03:01

标签: sqlalchemy db2 jupyter-notebook jupyter-lab

我正在使用SQL Magic连接到db2实例。但是,查询完数据库后,我似乎找不到任何关于如何关闭连接的语法。

5 个答案:

答案 0 :(得分:0)

您是否尝试过: %sql connect reset

答案 1 :(得分:0)

您无法使用Jupyter SQL Magic明确关闭连接。实际上,这是使用Jupyter SQL Magic连接到DB2的缺点之一。您需要关闭会话以关闭Db2连接。希望这会有所帮助。

答案 2 :(得分:0)

您还可以重新启动内核。

答案 3 :(得分:0)

这可能不是很有用,就某种程度上来说,它可能无法保证将来能够正常工作。但是,如果您需要一种真正骇人听闻的方式来关闭连接,则可以使用这种方式(对于postgres db,我认为它与db2类似):

In[87]: connections = %sql -l
Out[87]: {'postgresql://ngd@node1:5432/graph': <sql.connection.Connection at 0x7effdbcf6b38>}
In[88]: conn = connections['postgresql://ngd@node1:5432/graph'] 
In[89]: conn.session.close()
In[90]: %sql SELECT 1
...
StatementError: (sqlalchemy.exc.ResourceClosedError) This Connection is closed
[SQL: SELECT 1]
[parameters: [{'__name__': '__main__', '__doc__': 'Automatically created module for IPython interactive environment', '__package__': None, '__loader__': None, '__s ... (123202 characters truncated) ... stgresql://ngd@node1:5432/graph']", '_i28': "conn = connections['postgresql://ngd@node1:5432/graph']\nconn.session.close()", '_i29': '%sql SELECT 1'}]]

一个大问题是-如果您想重新连接,那似乎不起作用。即使在运行%reload_ext sql并尝试再次连接后,它仍然认为当您尝试使用连接时,该连接已关闭。因此,除非有人知道如何解决该问题,否则这仅对于在您不想在重新启动内核之前再次重新连接(具有相同参数的同一数据库)时断开连接有用。

答案 4 :(得分:-1)

如果要关闭连接,请先注销笔记本电脑。