我正在尝试将我的 Google Colaboratory Notebook 连接到我拥有的 Google Cloud SQL 实例,但我不能。我的实例只能通过 Cloud SQL 代理访问,并且我没有将任何 IP 列入白名单。连接到它的步骤是什么?我也试过下载cloud_proxy_sql,但问题是我不能给它文件的执行权限......
你对此有什么建议吗?
我正在尝试将我的 Google Colaboratory Notebook 连接到我拥有的 Google Cloud SQL 实例,但我不能。我的实例只能通过 Cloud SQL 代理访问,并且我没有将任何 IP 列入白名单。连接到它的步骤是什么?我也试过下载cloud_proxy_sql,但问题是我不能给它文件的执行权限......
你对此有什么建议吗?
这是一个示例: https ://colab.research.google.com/drive/1SQCvWqCUAkqVHjfaEuLTBMBzxVdl7Q9h
几个重要的点:
chmod +x
将使下载的代理可执行。google.colab.auth
. GOOGLE_APPLICATION_CREDENTIALS
这将设置代理所需的环境变量。然后,根据您的代理和数据库设置调整命令行调用:
!./cloud_sql_proxy --instances=my-project:my-region:my-instance
在此处找到解决方案:如何将 datalab 与 Google Cloud SQL 连接?
由于 colab 笔记本似乎是单线程的,因此您必须在一个笔记本中运行代理,而在另一个笔记本中运行查询
Bob Smith 的回答部分正确。问题是正如其他用途所指出的那样,笔记本在代理运行时无法运行其他单元。
我们可以通过在分离的屏幕中运行 cloud_sql_proxy 来解决这个问题。
安装依赖
# install screen
!apt update && apt install -y screen
然后我们就可以启动代理了。
# run a detached screen with the proxy command
!screen -S test -d -m "./cloud_sql_proxy --instances=my-project:my-region:my-instance"
现在笔记本现在可以继续执行其他单元格。
完成后记得杀死代理
# kill proxy
!screen -X -S test quit