【问题标题】:ERROR: (gcloud.sql.connect) HTTPError 400: The incoming request contained invalid data错误:(gcloud.sql.connect)HTTPError 400:传入请求包含无效数据
【发布时间】:2019-05-10 16:04:22
【问题描述】:

问题

我无法使用命令行连接到我的 Cloud SQL postgres 实例,该命令行之前一直在运行:

gcloud sql connect <instance_name> --user=<username>

这是我得到的错误:

ERROR: (gcloud.sql.connect) HTTPError 400: The incoming request contained invalid data.

版本

通过我的三星 Galaxy S8 运行 macOS Mojave 10.14 (18A391) 并连接 4G 热点。

$ gcloud --version

Google Cloud SDK 227.0.0
bq 2.0.39
core 2018.11.30
gsutil 4.34

日志

使用--log-http 标志运行命令,它会返回:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "invalidRequest",
    "message": "The incoming request contained invalid data."
   }
  ],
  "code": 400,
  "message": "The incoming request contained invalid data."
 }
}

问题

为什么会发生这种情况,我可以做些什么来解决它?

【问题讨论】:

  • 运行gcloud info。靠近输出底部的将是 gcloud 日志记录目录。再次运行您的命令,然后查看日志文件。您可以使用--verbosity=(调试、信息、警告、错误、关键、无)选项控制记录的信息量。
  • 您的热点很可能使用 HTTP 标头:tethered 4G hotspot via my Samsung Galaxy S8
  • 这似乎是原因。您是否建议解决此问题?
  • 一种方法是在浏览器中使用 Cloud Shell。

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


【解决方案1】:

显然这与我的系留连接有关。它可以在我家里的网络上运行。所以这不是gcloud 的真正问题。但是,我仍然不知道为什么在使用我的电话网络时它不起作用。

【讨论】:

  • 您的系留连接可能会为您提供 IPv6 地址。 AFAIK Cloud SQL Postgres 还不支持 IPv6;在issuetracker.google.com/72219717有一个关于 IPv6 + Cloud SQL v2 的功能请求
  • gcloud beta sql connect 将通过 Cloud SQL 代理连接,并使用 IPV6 地址。
【解决方案2】:

尝试使用代理进行连接。 请按照以下链接中提供的步骤进行操作: https://cloud.google.com/sql/docs/postgres/connect-admin-proxy

或者使用连接部分中的添加网络选项添加您的服务器 CIDR 地址。

【讨论】:

    【解决方案3】:

    我在 MacOS 上也遇到了这个问题(虽然不是网络共享),并且仅在我的网络首选项中将 ipv6 切换到链接本地修复了它。正如对已接受答案的评论所提到的,这里仍有一个关于此问题的开放功能请求:https://issuetracker.google.com/issues/72219717

    【讨论】:

    • 这非常适合作为一个快速简单的解决方案
    猜你喜欢
    • 2014-09-05
    • 1970-01-01
    • 1970-01-01
    • 2014-12-11
    • 1970-01-01
    • 2013-07-28
    • 2020-05-30
    • 1970-01-01
    • 2020-01-06
    相关资源
    最近更新 更多