【问题标题】:Managed VM not running Cloud SQL Proxy托管虚拟机未运行 Cloud SQL 代理
【发布时间】:2016-03-01 19:46:03
【问题描述】:

使用 Java 应用程序启动托管 VM,以下 appengine-web.xml

<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
    <application>thmadmin-ben</application>
    <version>master</version>
    <threadsafe>true</threadsafe>
    <vm>true</vm>
    <manual-scaling>
        <instances>1</instances>
    </manual-scaling>
</appengine-web-app>

我似乎没有在托管 VM 上运行 Cloud SQL 代理。是否需要添加 app.yaml 文件或在 appengine-web.xml 中定义其他内容?

【问题讨论】:

    标签: java google-app-engine google-cloud-sql google-managed-vm


    【解决方案1】:

    根据documentation,您需要指定要连接到的实例,如下所示并重新部署您的应用程序。

    使用 appengine-web.xml 时,语法为:

    <beta-settings>
      <setting name="cloud_sql_instances" value="<PROJECT-ID>:<REGION-NAME>:<SQL-INSTANCE-NAME>[, ...]" />
    </beta-settings>
    

    如果此设置不存在,Cloud SQL 代理将不会启动。

    【讨论】:

    • 好的,我现在在托管 VM 上有 /cloudsql 文件,但我似乎无法连接到云 sql 数据库。我已经 apt-get 安装了 mysql-client 但运行 mysql -uroot -p -S /cloudsql/XXX:us-east1:YYY 导致 ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet' ,系统错误:0 - 我看不到需要在云 SQL 实例上启用的任何内容,并且它作为同一项目的一部分运行 - 有什么想法吗?
    • 嗯,您的项目可能未启用 Cloud SQL Admin API。尝试通过console.cloud.google.com/flows/enableapi?apiid=sqladmin启用它 文档中缺少此步骤:(
    • 这终于奏效了——令人沮丧的是它没有记录在案。最后,我不愿意强制我使用的框架使用 Socket 连接而不是 TCP 连接。有没有办法让代理通过套接字在本地代理 TCP 端口 3306?
    猜你喜欢
    • 1970-01-01
    • 2015-01-10
    • 1970-01-01
    • 2016-05-22
    • 1970-01-01
    • 2021-12-29
    • 1970-01-01
    • 2022-01-24
    • 2018-09-03
    相关资源
    最近更新 更多