【发布时间】:2020-05-01 05:46:28
【问题描述】:
尝试将部署在应用引擎标准环境中的 Spring Boot 应用程序与云 MySql 连接会引发以下错误。
GCLOUD:java.sql.SQLNonTransientConnectionException:无法连接到 localhost:3,306 上的 MySQL 服务器。 GCLOUD:确保在您尝试连接的机器/端口上运行 MySQL 服务器,并且运行该软件的机器能够连接到该主机/端口(即没有防火墙)。还要确保没有使用 --skip-networking 标志启动服务器。
config.setDriverClassName("com.mysql.cj.jdbc.Driver");
config.setJdbcUrl(String.format("jdbc:mysql:///%s", DB_NAME));
config.setUsername(USER_NAME);
config.setPassword(USER_PW);
config.addDataSourceProperty("socketFactory", "com.google.cloud.sql.mysql.socket.factory.connector.j.8");
String CLOUD_SQL_CONNECTION_NAME = "PROJECTID:REGION:DB_INSTANCE";
config.addDataSourceProperty("cloudSqlInstance", CLOUD_SQL_CONNECTION_NAME);
建议here 在应用引擎中进行的“IAM”角色和其他设置。 我错过了什么吗?
【问题讨论】:
-
我正在使用 HikariConfig config = new HikariConfig();所以它在使用'socketFactory = com.google.cloud.sql.mysql.SocketFactory'时抛出错误(java.lang.NoSuchMethodError)。
-
你确定你已经创建了一个数据库(不仅仅是一个实例)?
标签: spring-boot google-app-engine google-cloud-sql