错误:(gcloud.sql.connect)HTTPError 400:传入请求包含无效数据。

13

问题

我无法通过命令行连接到我的Cloud SQL postgres实例,这在之前是有效的:

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

我遇到了以下错误:

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

版本信息

运行macOS Mojave 10.14(18A391),通过我的三星Galaxy S8使用一个USB共享网络。

$ 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."
 }
}

问题

为什么会出现这种情况,我该如何解决?


1
运行gcloud info命令。在输出的底部会有gcloud日志目录。再次运行您的命令,然后查看日志文件。您可以使用“--verbosity =”(debug、info、warning、error、critical、none)选项来控制记录的信息量。 - John Hanley
1
很可能你的热点正在玩HTTP头部:通过我的三星Galaxy S8连接的4G热点 - John Hanley
那似乎是问题的原因。您认为有解决这个问题的方法吗? - Daniel Olsson
4
一种方法是在浏览器中使用 Cloud Shell。 - John Hanley
3个回答

14

显然这与我的绑定连接有关。它可以在我家的网络中使用。所以这并不是与gcloud有关的问题。然而,我仍然不知道为什么在使用手机网络时它不能工作。


5
你的绑定连接可能会给你分配一个IPv6地址。据我所知,Cloud SQL PostgreSQL目前还不支持IPv6;有一个关于IPv6 + Cloud SQL v2的功能请求,可以在https://issuetracker.google.com/72219717上找到。 - Jesse Scherer
1
gcloud beta sql connect 将通过 Cloud SQL Proxy 连接,并使用 IPV6 地址。 - Raman

2

我在 MacOS 上遇到了这个问题(不是关于网络共享的),通过在我的网络偏好设置中将 ipv6 切换为仅限本地链接,问题得以解决。正如已被接受的答案评论所提到的那样,这个问题仍然存在一个开放的功能请求,可以在此处找到:https://issuetracker.google.com/issues/72219717


这是一个快速简单的解决方案,效果非常好。 - Brian
在我使用数据线连接时有效。 - Kevin Won

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接