通过Colab Notebook连接到Google云端硬盘上托管的.sql数据库

时间:2020-09-15 01:37:35

标签: python mysql google-colaboratory

我正在使用启用了Jupyter的%load_ext sql魔术关键字的Colab Notebook,以直接在Jupyter中使用SQL命令。目前,我远程访问服务器上托管的数据库,以便向学生展示SQL命令。但是,我想通过Google云端硬盘在“本地”托管.sql文件,然后连接到该共享文件,以免将文件实际托管在服务器上。

我将如何去做?我已经看到了这样的答案:Python 3.2 script to connect to local MySQL database,但是它假定文件是在本地托管的,而不是通过GDrive托管的。

1 个答案:

答案 0 :(得分:1)

我知道有两种在Colab中使用Google云端硬盘的方法:

  1. 使用python安装
from google.colab import drive
drive.mount('/content/drive')

按照单元格输出中的说明进行操作

-或---

  1. 使用Colab gui安装驱动器(单击此处红色圆圈,然后单击刷新文件夹按钮):

enter image description here

您将能够以文本形式访问.sql查询文件并在/content/drive/.../some_query.sql执行。您应该在drive gui中看到Files文件夹

访问和查询驱动器中托管的sql文件的完整代码可能是这样(但我最担心要连接到数据库,尤其是如果数据库托管在本地计算机上,如果数据库在云中,那么您会可能很好):

from google.colab import drive
drive.mount('/content/drive')

# %%

def open_text(path: str) -> str:
    with open(path, 'r') as file:
        return file.read()

# open the query file
query = open_text('./drive/My Drive/.../some_query.sql')

# %%

import pymysql
conn = pymysql.connect(host='127.0.0.1', unix_socket='/tmp/mysql.sock', user='root', passwd=None, db='mysql')
cur = conn.cursor()
# execute the query
cur.execute(query)
for r in cur:
    print(r)
cur.close()
conn.close()