我正在测试以下配置。
通过上述配置,我可以使用以下命令从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 <VM -Internal-IP> 9090
时,返回连接拒绝错误。
有人知道这是否是预期的行为吗?如果可以预期,为什么会这样?
答案 0 :(得分:2)
默认情况下,云代理使用127.0.0.1接受连接。
要配置另一个IP地址,您必须在instances参数中进行设置:
./cloud_sql_proxy -instances=<myCloudSQLproject:myCloudSQLzone:mycloudsqlinstance>=tcp:<IP_Address>:<PORT>
类似这样的东西:
./cloud_sql_proxy -instances=project_xxx:us-central1:database_yyy=tcp:10.203.23.12:9090
此配置还允许从其他主机连接到该云代理。
答案 1 :(得分:0)
因为您正在使用proxy,所以您可以从VM连接到Cloud SQL。如果您想连接到Cloud SQL,则已在Cloud SQL的“连接”标签中将虚拟机的IP地址列入了白名单,请参阅此documentation。
答案 2 :(得分:0)
这是预期的行为。只能通过Virtual Private Cloud (VPC)访问私有IP。为了连接资源(例如GCE实例),它也必须位于该VPC上。
答案 3 :(得分:0)
可以连接到127.0.0.1
但不能使用VM的专用IP地址进行连接的原因是,代理服务器未在侦听专用IP地址。
Cloud SQL代理侦听回送适配器的内部地址127.0.0.1
。此地址仅存在于计算机内部。