我正在使用启用了Jupyter的%load_ext sql
魔术关键字的Colab Notebook,以直接在Jupyter中使用SQL命令。目前,我远程访问服务器上托管的数据库,以便向学生展示SQL命令。但是,我想通过Google云端硬盘在“本地”托管.sql
文件,然后连接到该共享文件,以免将文件实际托管在服务器上。
我将如何去做?我已经看到了这样的答案:Python 3.2 script to connect to local MySQL database,但是它假定文件是在本地托管的,而不是通过GDrive托管的。
答案 0 :(得分:1)
我知道有两种在Colab中使用Google云端硬盘的方法:
from google.colab import drive
drive.mount('/content/drive')
按照单元格输出中的说明进行操作
-或---
您将能够以文本形式访问.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()