java - 从计算引擎中的 docker 容器连接到 Cloud SQL
问题描述
我正在尝试在计算引擎上的 docker 容器中部署一个 Spring Boot 应用程序,并让它连接到一个谷歌云 sql 数据库。我已将计算引擎上的 IP 地址从动态更改为静态,并将云 sql 视图中的 IP 地址列入白名单,但我仍然无法连接。我假设容器有它自己的 IP 地址
有什么建议么?
这是我得到的例外:
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:na]
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500) ~[na:na]
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481) ~[na:na]
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61) ~[mysql-connector-java-8.0.18.jar!/:8.0.18]
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:105) ~[mysql-connector-java-8.0.18.jar!/:8.0.18]
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:151) ~[mysql-connector-java-8.0.18.jar!/:8.0.18]
at com.mysql.cj.exceptions.ExceptionFactory.createCommunicationsException(ExceptionFactory.java:167) ~[mysql-connector-java-8.0.18.jar!/:8.0.18]
at com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:91) ~[mysql-connector-java-8.0.18.jar!/:8.0.18]
at com.mysql.cj.NativeSession.connect(NativeSession.java:144) ~[mysql-connector-java-8.0.18.jar!/:8.0.18]
at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:956) ~[mysql-connector-java-8.0.18.jar!/:8.0.18]
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:826) ~[mysql-connector-java-8.0.18.jar!/:8.0.18]
... 56 common frames omitted
Caused by: java.net.ConnectException: Connection refused
at java.base/sun.nio.ch.Net.pollConnect(Native Method) ~[na:na]
at java.base/sun.nio.ch.Net.pollConnectNow(Net.java:579) ~[na:na]
at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:542) ~[na:na]
at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:597) ~[na:na]
at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:339) ~[na:na]
at java.base/java.net.Socket.connect(Socket.java:603) ~[na:na]
at com.mysql.cj.protocol.StandardSocketFactory.connect(StandardSocketFactory.java:155) ~[mysql-connector-java-8.0.18.jar!/:8.0.18]
at com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:65) ~[mysql-connector-java-8.0.18.jar!/:8.0.18]
... 59 common frames omitted
解决方案
我发现这个关于使用 Cloud SQL 代理 docker 映像连接 MySQL 客户端的信息。有 MySQL 和 Postgresql 和
有几个步骤可以确认:
*验证实例上启用的范围 *验证您使用的是正确的实例名称:
例如:myproject:us-central1:myinstance。
如果您正在使用其他文档,请分享它。
推荐阅读
- jquery - 无法使用 JQuery 选择下拉值
- python - 自定义函数中未分配的新列(Python)
- eclipse - 如何在 Eclipse 中的项目之间共享语法着色首选项?
- r - 在R中将宽数据帧与长数据帧合并
- amazon-web-services - 使用 AWS CLI 检索与标签匹配的所有实例的所有卷 ID
- python - 根据列表更新数据框值
- javascript - 具有两个数组的 d3.js 折线图
- bash - 如何在搜索字符串中使 grep 匹配 \1 \2 等
- laravel - 使用 whereHas 和关系列的总和进行查询
- metadata - 外部脚本文件 (SAP CAI) 加载错误