【问题标题】:gcp cloud sql proxy "wsarecv: An existing connection was forcibly closed by the remote host."gcp cloud sql proxy“wsarecv:现有连接被远程主机强行关闭。”
【发布时间】:2019-08-06 01:55:00
【问题描述】:

我已经用 gcp cloud sql proxy 开发了 django,没有遇到麻烦。但是突然不能用这条消息连接cloud sql。

控制台消息: 2019/03/15 11:48:41 准备好新的连接 2019/03/15 11:48:50 “我的项目实例”的新连接 2019/03/15 11:48:52 从 127.0.0.1:5432 上的本地连接读取数据出现错误:读取 tcp 127.0.0.1:5432->127.0.0.1:55125: wsarecv: 远程强制关闭现有连接主持人。

我该如何解决这个问题?

【问题讨论】:

  • 当错误为An existing connection was forcibly closed by the remote host.时,很可能您发送了错误的请求。显示导致错误的请求,并尝试通过 WireShark 捕获请求的详细信息。
  • 很可能空闲连接被服务器关闭,但 sql 代理在尝试使用连接之前不会检测到它。尝试按照此文档中的说明调整 TCP keepalive:cloud.google.com/sql/docs/postgres/diagnose-issues
  • 我不使用计算引擎,这个文档中的keepalive值是否在计算引擎和云sql实例之间?我只是用 json 键创建 sql admin id。但是,同样的错误。我是否尝试使用 WireShark?

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


【解决方案1】:

MySQL 的默认 wait_timeout 值为 8 小时 - 在此时间长度内打开的任何连接都会被强制关闭。

您应该使用连接池(python 中一个很棒的库是SQLAlchemy)并将连接持续时间限制为低于此值。您可以在Managing Database Connections 页面上查看如何执行此操作的几个示例。

【讨论】:

  • 另外一台电脑的sql代理没有问题。所以,我的电脑有问题。但我不知道。我删除了一些程序,但仍然无法连接。我应该格式化我的电脑并重新安装 Windows 吗?
  • 我发现了一个与云 sql 代理有关的程序。我删除了这个程序。连接有效。
  • 您介意分享一下您发现困扰云 sql 代理的程序吗?
猜你喜欢
  • 2021-05-12
相关资源
最近更新 更多