如何将datalab与Google Cloud SQL连接?



尝试从数据实验室笔记本与托管在Google Cloud SQL上的PostgreSQL数据库进行连接。尝试直接 IP 和实例连接方式,但两者都给我们一个例外。

直接连接 URI:

"{engine}://{user}:{password}@{host}:{port}/{database}"

使用 Gcloud SQL Connect

"{engine}://{user}:{password}@/{database}?host=/cloudsql/{instance_connection_name}"

两者都给了我们这个例外:

OperationalError: (psycopg2.OperationalError) could not connect to 
server: Connection timed out
Is the server running on host "***.***.***.***" and accepting
TCP/IP connections on port ****?

知道它是否需要像协作代理连接那样的云 sql 代理吗?如果需要,如何使用数据实验室库来做到这一点?

我终于明白了。

假设 datalab VM 已经在 Gcloud 上进行身份验证,我尝试使用cloud_sql_proxy进行连接,而无需出现在 Collab 代理连接上的身份验证 python 命令,并通过构建缺少目录来修复仍然出现的错误。Si 我明白了:

!wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
!mkdir -p /cloudsql
!chmod +x cloud_sql_proxy

.

!./cloud_sql_proxy --instances=project-id:europe-west1:posty --dir /cloudsql

与 Collab 解决方案一样,我们需要让笔记本在备用窗口中运行以保持代理。使用同一台计算机上的其他笔记本,我们最终可以访问数据库。

注意:可能更好的解决方案是编辑 datalab 机器的 docker 映像以包含此行为,如此处所述。

可能是你的虚拟机计算机 IP 未在数据库中列入白名单。

您可以在谷歌云控制台SQL> yor_database>授权上访问该列表并添加新IP。

查看此链接以获取详细信息 https://cloud.google.com/sql/docs/mysql/connect-external-app?hl=en_US&_ga=2.178999533.-851571953.1521816449#appaccessIP

相关内容

  • 没有找到相关文章

最新更新