【问题标题】:Cloud run failed to start because of invalid SQL Cloud configuration由于 SQL 云配置无效,云运行无法启动
【发布时间】:2019-10-16 17:02:45
【问题描述】:

我按照文档从云端运行启用 SQL Cloud。但根据文档:

您的容器实例现在可以通过自动激活和配置的 Cloud SQL 代理连接到 Cloud SQL。在您的代码中,您可以使用/cloudsql/[CONNECTION NAME] unix 套接字连接到 Cloud SQL 实例。

最后一句话是什么意思? 我是否需要使用通常的连接字符串进行连接,例如: jdbc:postgresql://localhost:5432/${DATABASE_NAME}

在我的情况下,这是阻止容器启动的原因。 org.postgresql.util.PSQLException:连接到 localhost:5432 被拒绝。检查主机名和端口是否正确,以及 postmaster 是否接受 TCP/IP 连接。

我还使用以下命令“添加”SQL 云: gcloud beta run deploy --image gcr.io/[PROJECT_ID/[IMAGE_NAME]:[TAG] --add-cloudsql-instances [CONNECTION_NAME]

【问题讨论】:

    标签: google-cloud-platform google-cloud-sql google-cloud-run


    【解决方案1】:

    连接语句的一个例子是这个:

    import pymysql
    connection = pymysql.connect(unix_socket='/cloudsql/' + <INSTANCE_CONNECTION_NAME>,
                                 user='<USER>',
                                 password='<PASSWORD>',
                                 db='<DATABASE>')
    

    您可以在Google's documentation 中找到更多关于从也使用云代理的外部应用程序连接到 Cloud SQL 的信息。

    如果您使用的是 Java。 UNIX 套接字连接的文档可以在这里找到:Cloud SQL Socket Factory for JDBC drivers

    【讨论】:

    • 我想我错过了文档中的一个重要点。 UNIX 套接字....不是 TCP。我将尝试使用 Cloud SQL Socket Factory for JDBC 驱动程序。并将更新此帖子。
    • 由于我使用的是 java,因此通过使用 UNIX 套接字,如下所述:link 它与同一项目中的实例一起使用。
    • 试试 Quarkus。不工作... quarkus.datasource.jdbc.url=jdbc:postgresql:///${DATASOURCE_DBNAME}?socketFactory=com.google.cloud.sql.postgres.SocketFactory&cloudSqlInstance=${DATASOURCE_URL}&user=${DATASOURCE_USER}&password =${DATASOURCE_PWD}&useSSL=false ...有人可以帮助我吗?
    • 嗨 Anthony,我有同样的问题,我无法使用 quarkus(反应性数据源)进行连接。你有没有找到任何解决方案。提前致谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-01
    • 1970-01-01
    • 2021-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多