为Google Colaboratory提供代理SQL访问权限

时间:2018-03-06 10:10:59

标签: google-cloud-platform google-cloud-sql google-colaboratory cloud-sql-proxy

我试图将我的Google Colaboratory笔记本连接到我拥有的Google Cloud SQL实例,但我无法做到。我的实例只能通过Cloud SQL Proxy访问,而且我没有白名单任何ip。连接它的步骤是什么?我也试过下载cloud_proxy_sql,但问题是我不能给它文件的执行权限......

你对此有什么建议吗?

3 个答案:

答案 0 :(得分:3)

这是一个例子: https://colab.research.google.com/drive/1SQCvWqCUAkqVHjfaEuLTBMBzxVdl7Q9h

一些要点:

  1. chmod +x将使下载的代理可执行。
  2. 您需要使用google.colab.auth进行身份验证。这将设置代理所需的环境变量GOOGLE_APPLICATION_CREDENTIALS
  3. 然后,根据您的代理和数据库设置调整命令行调用:

    !./cloud_sql_proxy --instances=my-project:my-region:my-instance
    

答案 1 :(得分:0)

在这里找到解决方案:How to connect datalab with Google Cloud SQL?

由于colab笔记本似乎是单线程的,因此您必须在一个笔记本中运行代理,而在另一个笔记本中运行查询

答案 2 :(得分:0)

鲍勃·史密斯(Bob Smith)的回答部分正确。问题是,正如其他用途所指出的那样,笔记本计算机在代理运行时无法运行其他单元。

我们可以通过在独立屏幕中运行cloud_sql_proxy来解决此问题。

  1. 安装依赖项

    # install screen
    !apt update && apt install -y screen
    
  2. 然后我们可以启动代理。

    # 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