运行 从本地机器创建 table 的 nodejs 脚本终止云 SQL 连接

Running nodejs Script to create table from local machine terminates Cloud SQL connection

我正在尝试 运行 来自 windows 的命令 node createTable.js $DB_USER $DB_PW $DB_NAME $CLOUD_SQL_CONNECTION_NAME power shell 正如 Google 云平台 nodejs 连接示例中所示至 cloudsql from cloudrun using knex in this repository.

我已经安装并启动了云 SQL 代理并按照所有说明进行操作,包括在示例中添加服务帐户。但是每次我 运行 来自 power Shell 的 createTable.js 脚本时,我都会在 Powershell 中得到以下错误:

当我检查日志时,我在 Cloud 中得到以下信息 SQL

"db=cloudsqladmin,user=cloudsqladmin FATAL: terminating connection due to administrator command"

见下图:

我不知道可能导致错误的原因。

PS:我尝试从云控制台连接到云 SQL,这工作正常,但是,当我使用 Powershell 从本地计算机尝试此操作时,它显示上述错误

您似乎正在尝试使用实例的 public IP 地址连接到云 SQL。如果您通过云 SQL 代理连接,您应该在代理 运行 所在的任何端口连接到 localhost127.0.0.1。 要以 TCP 模式启动代理,运行:

Start-Process -filepath "C:\<path to proxy exe>" -ArgumentList "-instances=<project-id>:<region>:<instance-name>=tcp:5432 -credential_file=<CREDENTIALS_JSON_FILE>"

然后运行

$env:DB_USER $env:DB_PW $env:DB_NAME $env:CLOUD_SQL_CONNECTION_NAME node createTable.js --dbHost "127.0.0.1:5432"

代理允许您连接到您的实例,而无需将您机器的 IP 添加到实例的白名单中。如果您尝试直接连接而您的 IP 不在允许列表中,您将收到错误消息。