如何使用mysql作为jupyterhub的数据库?

时间:2018-06-26 08:09:58

标签: mysql docker jupyterhub

JupyterHub的默认数据库是SQLite数据库。但是我想用MySQL替换SQLite数据库。我尝试在配置文件中使用config变量。

c.JupyterHub.db_url = 'jdbc:mysql://localhost:3306/test'

但是当我运行jupyterhub时​​,它会产生如下错误:

sqlalchemy.exc.ArgumentError: Could not parse rfc1738 URL from string 'jdbc:mysql://localhost:3306/test'

我搜索并研究了jupyterhub的官方文档,但没有发现与我的问题有关的任何内容。任何解决这个问题的办法?有人吗?

谢谢!

4 个答案:

答案 0 :(得分:2)

找到了解决上述问题的确切方法。

c.JupyterHub.db_url = 'mysql+mysqlconnector://{}:{}@{}/{}{}'.format("username","password","host","database","")

答案 1 :(得分:1)

如果您在使用 mysql 时不添加该争论,那么它是上述正确答案的补充,您将遇到超时问题,如文档 (https://jupyterhub.readthedocs.io/en/stable/reference/database.html) 所述

答案 2 :(得分:0)

RFC1738说url语法必须定义如下:

//<user>:<password>@<host>:<port>/<url-path>

RFC1738的语法与JDBC specification不同。看来您正在尝试使用JDBC语法解析RFC1738-url(JupyterHub需要)。

答案 3 :(得分:-1)

让您还在 JH 配置中添加池回收选项。根据文档。

c.JupyterHub.db_kwargs = {"pool_recycle":300}