当前位置: 首页 > 知识库问答 >
问题:

GCP使用虚拟机通过云SQL身份验证代理私有IP连接到云SQL

谢阳成
2023-03-14

我在通过云 SQL 身份验证代理将 GCP 计算引擎虚拟机连接到配置了专用 IP(非公共)的云 SQL 实例时遇到问题。

执行后

$ ./cloud_sql_proxy -instances=INSTANCE_CONN_NAME=tcp:3306

我看到以下输出:

2021/10/11 12:29:24 Rlimits for file descriptors set to {Current = 8500, Max = 1048576}

2021/10/11 12:29:28 Listening on 127.0.0.1:3306 for *CLOUD-SQL-CONNECTION-NAME*

2021/10/11 12:29:28 Ready for new connections

2021/10/11 12:29:28 Generated RSA key in 101.010024ms

我还没有看到上面关于这个主题的任何教程的最后陈述。

我< code>CTRL-C退出上述操作,然后显示:

^C2021/10/11 12:29:39 Received TERM signal. Waiting up to 0s before terminating.

然后,我运行以下命令以连接到我的云 SQL 实例:

mysql -u root -p --host 127.0.0.1

返回:

Enter password: (password entered)

输入密码后返回:

ERROR 2005 (HY000): Unknown MySQL server host 'CLOUD-SQL-PROXY-IP-ADDRESS:3306' (22)

以下是一些附加信息:

  • 我的虚拟机 (Ubuntu) 与我的云 SQL 实例位于同一区域,并且位于同一 VPC 网络中。
  • 我的 CLoud SQL 管理员 API 已启用
  • 云 SQL 实例仅配置了专用 IP(非公有)
  • 我已经在我的虚拟机中安装了 MySQL 客户端
  • 我的虚拟机上的云访问 API 的范围包括云 SQL(对所有 API 的完全访问权限)
  • 我自己和 VM 的服务帐户都具有云 SQL 管理员权限

共有1个答案

靳金鹏
2023-03-14

从文档中:

云SQL身份验证代理不提供新的连接路径;它依赖于现有的IP连接。要使用私有IP连接到云SQL实例,云SQL身份验证代理必须位于可以访问与实例相同的VPC网络的资源上。

这意味着除非您位于同一 VPC 中,否则您将无法访问实例,因此您需要虚拟机、隧道或公有 IP。

 类似资料:
  • 我按照这个示例从Cloud Function连接到Postgres Cloud SQL:https://cloud.google.com/functions/docs/sql. 当我使用公共 IP 创建测试云 SQL 实例并触发云函数时,它会连接到云 SQL 实例并返回一些内容。出于安全原因,我不能将公共 IP 保留为打开状态,因此当我在云 SQL 实例上选择专用 IP 时,我得到: 我无法从文档

  • GCP建议通过私有IP连接使用云SQL代理https://cloud.google.com/sql/docs/mysql/connect-kubernetes-engine#before_you_begin.如果应用程序不想利用云SQL代理,而是选择私有IP连接,则没有建议、文档或流程来确保私有IP连接的安全或建立必要的身份验证。 除了专用 IP 连接之外,应用程序还应执行哪些操作,以使其等效于云

  • 问题内容: sqlalchemy是Python的数据库连接模块,默认情况下使用SQL身份验证(数据库定义的用户帐户)。如果要使用Windows(域或本地)凭据对SQL Server进行身份验证,则必须更改连接字符串。 默认情况下,按照sqlalchemy的定义,连接到SQL Server的连接字符串如下: 如果使用您的Windows凭据使用,则会引发类似于以下的错误: 在此错误消息中,代码1845

  • 我似乎无法使用Docker容器连接到CloudSQL。 首先,这里是我的文件路径:https://imgur.com/a/Nmx41o6 Dockerfile.dev: Dockerfile.sql 我的节点索引.js文件。我不认为有什么问题,也许我输入了错误的连接字符串格式?据我所知,密码和用户是正确的。 我得到的错误: 解决:我切换到TCP。拧入unix插座。这太令人困惑了。

  • 我配置了一个SQL Server实例,但在尝试本地连接(实例服务器)时,de SQL Server身份验证出现问题。 当我远程连接到SQL时,SQL Server身份验证工作正常,但当我尝试本地连接时,服务器返回SQL错误18456。 我不知道发生了什么...我可以远程连接,但不能本地连接

  • 我正在尝试为我的kubernetes项目使用。 我遵循仙丹指南和凤凰指南。在Connect to your Cloud SQL实例中,该指南指出,运行“cloud_sql_proxy-dir=/tmp/cloudsql”和“psql-h/tmp/cloudsql/[CONNECTION-NAME]-u postgres”将打开代理。 所以我尝试用下面的这些命令创建一个新的目录。 然后我尝试连接云s