gpt4 book ai didi

java - 为什么 Hikari 构建了一个错误的数据库 URL?

转载 作者:行者123 更新时间:2023-12-01 19:24:55 24 4
gpt4 key购买 nike

我在使用 HikariCP 和 Google App Engine for JEE 时遇到问题。

尝试访问网站时,我记录了错误:

com.zaxxer.hikari.pool.HikariPool$PoolInitializationException:无法初始化池:无法连接到 localhost:3,306 上的 MySQL 服务器。

如您所见,它在端口地址中添加了一个“,”。

我尝试向其发送完整的 URL,但没有附加任何内容。这是我的 Servlet INIT 类:

public class InitialServlet extends HttpServlet {

public static final String SEANCE_MANAGER = "SEANCE_MANAGER";

public static final String CLOUD_SQL_CONNECTION_NAME="";
public static final String DB_USER="test_db";
public static final String DB_PASS="password";
public static final String DB_NAME="dbname";

@Override
public void init(ServletConfig config) throws ServletException {

HikariConfig configs = new HikariConfig();

configs.setJdbcUrl("jdbc:mysql://localhost:3306/dbname");
configs.setUsername(DB_USER);
configs.setPassword(DB_PASS);


configs.addDataSourceProperty("socketFactory", "com.google.cloud.sql.mysql.SocketFactory");
configs.addDataSourceProperty("cloudSqlInstance", CLOUD_SQL_CONNECTION_NAME);
configs.addDataSourceProperty("useSSL", "false");


DataSource pool = new HikariDataSource(configs);

DataAccess dataAccess = new DataAccess(pool);

SeancesManager seancesManager = new SeancesManager(dataAccess);
config.getServletContext().setAttribute(SEANCE_MANAGER, seancesManager);

}
}

我该如何修复这个错误?谢谢

最佳答案

documentation中指定的官方连接唯一的区别您可以按照以下步骤通过 Java 将 App Engine 与 Cloud SQL 连接起来,我看到的是 setJdbcurl 的格式。

我知道这可能有些牵强,但是您可以尝试像这样格式化 setJdbcUrl 吗?

config.setJdbcUrl(String.format("jdbc:mysql:///%s", DB_NAME));

另外,请仔细检查连接变量,以防出现问题。

请告诉我,如果它不起作用,我们将进行更多调查。

编辑:

您正在使用 SQL Proxy

如果您使用 SQL 代理,请再次运行该命令并确保正确指定端口。

这是我能想到的第一件事,你可以在哪里指定端口,并且在你指定的命令中可能有一个“,”。

我想知道的另一件事是,您是否在任何地方覆盖或修改了端口号?我建议您检查一下,因为错误“3,306”是因为指定的端口是“3,306”。正常失败错误直接失败,3306。

关于java - 为什么 Hikari 构建了一个错误的数据库 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59321856/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com