目前,我正在尝试遵循此文档,以便连接到我的第二代云SQL数据库。但是,我的应用程序在启动时失败,因为它无法连接到它。。
正如文件中所说,我已经添加了两个服务帐户
my-project@appspot.gserviceaccount.com
1234-compute@developer.gserviceaccount.com
作为IAM下的编辑器。
我正在使用云SQL实例的IPv4进行连接。这里的连接字符串:
jdbc:mysql://w.x.y.z:3306/app_db?useSSL=false
但在Stackdriver日志视图中,我看到:
[main] ERROR com.mz.server.BootstrappingServerConfig - Error trying to migrate SQL scripts ..
org.flywaydb.core.api.FlywayException: Unable to obtain Jdbc connection from DataSource
at org.flywaydb.core.internal.util.jdbc.JdbcUtils.openConnection(JdbcUtils.java:56)
at org.flywaydb.core.Flyway.execute(Flyway.java:1385)
at org.flywaydb.core.Flyway.migrate(Flyway.java:1006)
...
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
...
Caused by: java.net.ConnectException: Connection timed out
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
...
两个实例都在同一区域:us-central1-b
用于计算实例,us-central1
用于SQL实例。
我的应用程序.yaml文件:
runtime: java
vm: true
runtime_config:
jdk: openjdk8
server: jetty9
env_variables:
'ALPN_ENABLE': 'true' # OPTIONAL
beta_settings:
cloud_sql_instances: mz-test:us-central1:mz-test-cloudsql
health_check:
enable_health_check: false
我不确定这里出了什么问题。是否允许我使用SQL实例的本地IPv4地址?
文件上实际上写着
">在您的应用程序代码中,通过打开具有以下名称的套接字连接到实例:
/cloudsql/[INSTANCE_CONNECTION_NAME}
">
但我不确定这对连接字符串意味着什么。
我还缺少关于需要什么用户名/密码的信息,或者我不需要这里的用户名/密码吗?
为什么我无法连接?
对于在App Engine Flexible Environment上运行的Java应用程序,应用程序使用以下库:https://github.com/GoogleCloudPlatform/cloud-sql-mysql-socket-factory