2

我正在尝试做的事情

我正在尝试使用 SQL Server Management Studio (SSMS) 在 Cloud SQL (GCP) 上管理我的 SQL Server 实例。

我做了什么

我按照 Google Cloud 文档(此处)中的步骤操作。
我按照步骤 1-5(下面的精简版):

  1. 安装 Cloud SQL
  2. gcloud init
  3. 运行gcloud auth login(PS 我是项目级别的所有者)
  4. 下载并安装 Google Cloud SQL 代理(按照此处的说明)
    1. 启用 Cloud SQL 管理 API
    2. 安装代理客户端(对我来说是 Windows PC,x64 - 将文件重命名为cloud_sql_proxy.exe
    3. 确定代理身份验证方法(根据此处的文档)。我选择了 Cloud SDK,因为无论如何我都需要在步骤 1 中下载它
    4. 跳过(不使用服务帐户身份验证)
    5. 确定代理实例规范(根据此处的文档)。使用代理调用方法上指定的实例。
      • 我只有私有 IP,所以默认情况下它会选择正确的 IP(根据此处的文档)
    6. 与第 5 步(如下)相同 5 。启动代理。我运行(在 cmd 中)./cloud_sql_proxy -instances=<INSTANCE_CONNECTION_NAME>=tcp:1433(显然用<INSTANCE_CONNECTION_NAME>我的实例名称替换了该部分。

在这一点上,一切似乎都在工作:

Listening on 127.0.0.1:1433 for <INSTANCE_CONNECTION_NAME>
Ready for new connections
New connection for <INSTANCE_CONNECTION_NAME>
New connection for <INSTANCE_CONNECTION_NAME>

现在按照此处的说明,我尝试使用 SSMS(127.0.0.1SQL Server 身份验证、我sqlserver超级棒密码)、Connect 连接到数据库实例。

我的问题

我现在在 Cloud SDK 窗口中收到以下错误消息:

couldn't connect to <INSTANCE_CONNECTION_NAME>: dial tcp <PRIVATE_IP>:<PORT>: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
Throttline refreshCfg(<INSTANCE_CONNECTION_NAME>: it was only called XXXs ago

(它重复了几次)

在 SSMS 中,我收到以下提示:

SSMS 错误信息

我的问题

如何解决此问题并正确连接到我的数据库实例?

4

1 回答 1

1

在为 SQL Server 实例设置连接设置时,我将其更改为Private IP并取消选中该Public IP设置。重新启用Public IP设置允许我建立连接

Cloud SQL 连接设置

外部应用仍然可以通过 Cloud SQL 代理连接到实例

这间接向我表明 Cloud SQL 代理需要Public IP启用该选项才能建立连接。

于 2020-06-15T23:17:42.580 回答