我正在尝试将我的Google Colab Notebook连接到我拥有的Google Cloud SQL实例,但我不能。我的实例只能通过云 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
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
在这里找到了解决方案:如何将datalab与Google Cloud SQL连接起来?
由于 colab 笔记本似乎是单线程的,因此您必须在一个笔记本中运行代理,在另一个笔记本中运行查询