Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 是否可以通过主机计算引擎VM';连接到云SQL代理;是内部IP还是外部IP?_Google Cloud Platform_Google Cloud Sql_Cloud Sql Proxy - Fatal编程技术网

Google cloud platform 是否可以通过主机计算引擎VM';连接到云SQL代理;是内部IP还是外部IP?

Google cloud platform 是否可以通过主机计算引擎VM';连接到云SQL代理;是内部IP还是外部IP?,google-cloud-platform,google-cloud-sql,cloud-sql-proxy,Google Cloud Platform,Google Cloud Sql,Cloud Sql Proxy,我正在测试以下配置 区域X区域A中的云SQL(tetsql-1) 同一区域X区域A中的计算引擎VM(TestVM-1)。操作系统为Centos 7 计算引擎VM正在非默认端口(9090)上运行云SQL代理 通过上述配置,我可以使用以下命令从TestVM-1登录到testsql-1: `mysql -h 127.0.0.1 --port 9090 -u testuser -D testDB -p` 但是,我不能在上面的命令中使用TestVM-1的内部IP。它给出了一个错误 另一个观察结果

我正在测试以下配置

  • 区域X区域A中的云SQL(tetsql-1)
  • 同一区域X区域A中的计算引擎VM(TestVM-1)。操作系统为Centos 7
  • 计算引擎VM正在非默认端口(9090)上运行云SQL代理
通过上述配置,我可以使用以下命令从TestVM-1登录到testsql-1:

  `mysql -h 127.0.0.1 --port 9090 -u testuser -D testDB -p`
但是,我不能在上面的命令中使用TestVM-1的内部IP。它给出了一个错误

另一个观察结果是,我能够执行
telnet 127.0.0.1 9090
,但当我尝试
telnet 9090
时,返回一个连接拒绝错误


有人知道这是否是预期的行为吗?如果这是预期的,为什么会这样?

您可以从VM连接到云SQL,因为您使用的是。如果您想连接到云SQL,那么您已经在云SQL的连接选项卡中列出了虚拟机的IP地址,请参阅此项。

您可以从虚拟机连接到云SQL,因为您正在使用。如果您想连接到云SQL,那么您已经在云SQL的连接选项卡中列出了虚拟机的IP地址,请参阅此项。

这是预期行为。私人IP仅可从网络访问。为了使资源(如GCE实例)能够连接,它还必须位于该VPC上


有关如何将GCE实例添加到VPC的说明,请参见此,有关专用IP环境要求的更多信息,请参见此

这是预期的行为。私人IP仅可从网络访问。为了使资源(如GCE实例)能够连接,它还必须位于该VPC上


有关如何将GCE实例添加到VPC的说明,请参见此,有关专用IP环境要求的更多信息,请参见此

您可以连接到
127.0.0.1
,但无法使用VM的专用IP地址进行连接的原因是代理未侦听专用IP地址


云SQL代理侦听环回适配器的内部地址
127.0.0.1
。此地址仅存在于计算机内部。

您可以连接到
127.0.0.1
,但无法使用VM的专用IP地址进行连接的原因是代理未侦听专用IP地址


云SQL代理侦听环回适配器的内部地址
127.0.0.1
。此地址仅存在于计算机内部。

云代理默认使用127.0.0.1,其中它接受连接

要配置另一个IP地址,必须在instances参数中进行设置:

/cloud\u sql\u proxy-instances==tcp::
大概是这样的:

./cloud_sql_proxy -instances=project_xxx:us-central1:database_yyy=tcp:10.203.23.12:9090

此配置还允许从其他主机连接到此云代理。

云代理默认使用127.0.0.1,其中它接受连接

要配置另一个IP地址,必须在instances参数中进行设置:

/cloud\u sql\u proxy-instances==tcp::
大概是这样的:

./cloud_sql_proxy -instances=project_xxx:us-central1:database_yyy=tcp:10.203.23.12:9090

此配置还允许从其他主机连接到此云代理。

之后,我能够通过我的计算引擎实例上的云SQL代理访问我的CLoudSQL实例,即使配置了端口9090。能否确认您在shell命令“/cloud\u sql\u proxy-instances==tcp:9090”中使用了正确的CloudSQL实例名称?@oakinlaja不确定我是否理解您的意思。当我使用127.0.0.1作为主机IP地址时,我能够通过代理连接到CloudSQL。猜猜我想了解的是,为什么云SQL代理只绑定到127.0.0.1 IP,而不绑定到主机GCE实例的私有IP。这是使用TCP套接字连接的要求,代理通过127.0.0.1访问。使用TCP套接字,代理可以作为本地主机使用。使用私有IP或实例的公共IP从计算引擎实例进行连接有多种方法,但是,使用CloudSQL代理时,尤其是使用TCP套接字时,只能通过127.0.0.1访问代理。同时,我用0.0.0.0做了一个测试,效果也很好。@oakinlaja我不理解用0.0.0.0做的测试效果如何。您的意思是说您设法用bind=0.0.0.0启动了cloudsql代理吗?根据您上述评论的剩余部分,我假设即使这样,也只能使用mysql-H127.0.0.1(或localhost)连接到代理。第一个澄清这一点的答复是约翰·汉利(John Hanley)的,所以我接受这个答复——除非你想补充一个更详细的答复。@David是的,这意味着你不能根据我所看到的,并由oakinlaja和约翰·汉利(John Hanley)进一步确认,我能够通过我的计算引擎实例上的云SQL代理访问我的CLoudSQL实例,即使配置了端口9090。能否确认您在shell命令“/cloud\u sql\u proxy-instances==tcp:9090”中使用了正确的CloudSQL实例名称?@oakinlaja不确定我是否理解您的意思。当我使用127.0.0.1作为主机IP地址时,我能够通过代理连接到CloudSQL。猜猜我想了解的是,为什么云SQL代理只绑定到127.0.0.1 IP,而不绑定到主机GCE实例的私有IP。这是使用TCP套接字连接的要求,代理通过127.0.0.1访问。使用TCP套接字,代理可以作为本地主机使用。使用私有IP或实例的公共IP从计算引擎实例进行连接有多种方法,但是,使用CloudSQL代理时,尤其是使用TCP套接字时,只能通过127.0.0.1访问代理。同时,我用0.0.0.0做了一个测试,效果也很好。@oakinlaja我不理解用0.0.0.0做的测试效果如何。您的意思是说您设法用bind=0.0.0.0启动了cloudsql代理吗?根据你上述评论的剩余部分,我假设