天道酬勤,学无止境

H2 jdbc 连接被拒绝:连接 90067-147(H2 jdbc Connection refused: connect 90067-147)

问题

我有一个要升级的项目,它使用带有 jdbc 驱动程序的 h2 DB。 在构建过程中,我在连接时出现系统错误:

Exception in thread "main" org.h2.jdbc.JdbcSQLException: Connection is broken: "Connection refused: connect" [90067-147]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:327)
at org.h2.message.DbException.get(DbException.java:156)
at org.h2.engine.SessionRemote.connectServer(SessionRemote.java:380)
at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:271)
at org.h2.engine.SessionRemote.createSession(SessionRemote.java:265)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:110)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:94)
at org.h2.Driver.connect(Driver.java:72)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)

我不明白为什么连接被拒绝,服务器在与请求的 URL、PORT 和 DB 相同的 URL、PORT 和 DB 上很好地启动。

服务器启动良好,但是当我想打开连接时发生错误:

Connection connection = DriverManager.getConnection(DBURL, DBUSER, DBPWD + " " + DB_PWD);

关于可能是什么原因的任何想法?

更新:此问题与防火墙无关,而主要与服务器数据库路径有关。

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • H2 jdbc Connection refused: connect 90067-147
    I got a project to upgrade and it is using h2 DB with jdbc driver. During the build I have a systematic error on connection: Exception in thread "main" org.h2.jdbc.JdbcSQLException: Connection is broken: "Connection refused: connect" [90067-147] at org.h2.message.DbException.getJdbcSQLException(DbException.java:327) at org.h2.message.DbException.get(DbException.java:156) at org.h2.engine.SessionRemote.connectServer(SessionRemote.java:380) at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:271) at org.h2.engine.SessionRemote.createSession(SessionRemote.java:265) at org.h2
  • 如何显示本地 h2 数据库(Web 控制台)的内容?(How to show content of local h2 database(web console)?)
    问题 最近我加入了一个新团队,这里的人使用 h2 进行存根服务。 我想知道是否可以使用 Web 界面显示该数据库的内容。 在工作中,它可以通过访问localhost:5080 我有一个使用 h2 数据库的项目,但是当我点击localhost:5080时我看不到 h2 Web 控制台 我也试过localhost:8082 - 它也不起作用。 我的项目配置(成功运行): <bean id="wrappedDataSource" class="net.bull.javamelody.SpringDataSourceFactoryBean"> <property name="targetName" value="dataSource" /> </bean> <bean id="wrappedDataSource" class="net.bull.javamelody.SpringDataSourceFactoryBean"> <property name="targetName" value="dataSource" /> </bean> <bean class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" id="dataSource"> <property name="driverClassName"
  • DB2 jdbc 连接错误连接被拒绝。 错误代码=-4499,SQLSTATE=08001(DB2 jdbc connection error Connection refused. ERRORCODE=-4499, SQLSTATE=08001)
    问题 我有一个新的 DB2 服务器(v10.5.0.3),我可以在本地连接到数据库就好了。 尝试使用 JDBC 从远程服务器连接时,出现“连接被拒绝。ERRORCODE=-4499,SQLSTATE=08001”错误。 根据此处找到的信息 https://www-304.ibm.com/support/docview.wss?uid=swg21403644 我已经确认 [db2inst1@db2 ~]$ db2set -all [i] DB2COMM=TCPIP [i] DB2AUTOSTART=YES [g] DB2SYSTEM=db2.xxxx.com [g] DB2INSTDEF=db2inst1 [g] DB2ADMINSERVER=xxxxxx 和 [db2inst1@db2 ~]$ db2 get database manager configuration | grep -i svce TCP/IP Service name (SVCENAME) = 50001 SSL service name (SSL_SVCENAME) = 使用这些 JDBC 连接值 driver=com.ibm.db2.jcc.DB2Driver url=jdbc:db2://db2.xxxxx.com:50001/TESTGEN username=XXXXXXXX password
  • 错误:到主机的TCP / IP连接失败。 java.net.ConnectException:连接被拒绝:connect(Error:The TCP/IP connection to the host has failed. java.net.ConnectException: Connection refused: connect )
    问题 我在用 Windows 7的 Netbeans IDE 7.1.2 SQL Server管理Studio Express 2005 JDK1.6 连接到数据库时出现以下错误: com.microsoft.sqlserver.jdbc.SQLServerException:与主机的TCP / IP连接失败。 java.net.ConnectException:连接被拒绝:connect 我的连接字符串是: Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Connection connection = DriverManager.getConnection( "jdbc:sqlserver://127.0.0.1:1433;databaseName=dbcm;" + "user=sa;password=sa"); 我检查了以下内容: 在SQL Server配置管理器中,SQLEXPRESS的协议:启用了TCP / IP实际上,我也启用了剩余的3个。 SQL Server(SQLExpress)和SQL Browser Service都在运行。 回答1 我按照以下步骤使用JDBC成功连接到SQLExpress实例: 使用SQL Express配置TCP / IP通信打开SQL Server配置管理器。
  • 运行 Nutch 2 时连接被拒绝错误(connection refused error when running Nutch 2)
    问题 我正在尝试在我的系统上运行 Nutch 2 爬虫,但出现以下错误: Exception in thread "main" org.apache.gora.util.GoraException: java.io.IOException: java.sql.SQLTransientConnectionException: java.net.ConnectException: Connection refused at org.apache.gora.store.DataStoreFactory.createDataStore(DataStoreFactory.java:167) at org.apache.gora.store.DataStoreFactory.createDataStore(DataStoreFactory.java:135) at org.apache.nutch.storage.StorageUtils.createWebStore(StorageUtils.java:69) at org.apache.nutch.crawl.InjectorJob.run(InjectorJob.java:243) at org.apache.nutch.crawl.Crawler.runTool(Crawler.java:68) at org.apache.nutch
  • 数据源derby-连接被拒绝(data sources derby - connection refused)
    问题 我正在尝试用Java项目连接数据库。 阅读了一些教程和课程支持后,我了解到我需要在管理控制台下创建一个新的数据源。 因此,我已经登录到管理控制台,然后导航至资源-> JDBC->数据源->新建; 填写字段,当我测试连接时,我得到的错误是这一个: 消息对于节点RO2CVG6CNode01上的服务器server1上的数据源MyDB,测试连接操作失败,但有以下异常:java.sql.SQLNonTransientException:java.net.ConnectException:在端口1527上连接到服务器localhost时出错,消息为拒绝连接:connect.DSRA0010E: SQL状态= 08001,错误代码= 40,000。 查看JVM日志以获取更多详细信息。 我不知道问题出在哪里。 也许数据库名称为:jdbc:derby:D:\ MyDB? 谁能帮我吗? 在本教程之后,我还尝试仅使用MyDB。 但是仍然不起作用。 回答1 您是否正在运行Derby Server? 您很有可能尝试在没有实际服务器在端口1527上运行的情况下连接到数据库。 您可以尝试使用命令行/ linux shell建立连接-取决于您使用的操作系统。 如果您喜欢,请尝试以下操作: 打开命令提示符导航到您的Derby安装目录导航到“ bin”目录(注意:如果存在
  • 来自 Openshift Tomcat 7 墨盒的 Postgres 连接被拒绝(Postgres connection refused from Openshift Tomcat 7 cartridge)
    问题 我正在尝试在 Openshift Tomcat 7 (JBoss EWS 2.0) 墨盒上部署一个应用程序,但我得到: org.postgresql.util.PSQLException: Connection refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections. 这是我的数据源配置: public class OpenshiftDataConfig { @Inject private Environment environment; @Bean public DataSource dataSource() { HikariDataSource dataSource = new HikariDataSource(); dataSource.setDataSourceClassName("org.postgresql.ds.PGSimpleDataSource"); dataSource.setJdbcUrl(String.format("jdbc:%s/%s", environment.getProperty("OPENSHIFT_POSTGRESQL_DB_URL"), "dev")); dataSource
  • H2内存数据库。 找不到表格(H2 in-memory database. Table not found)
    问题 我有一个URL为"jdbc:h2:test"的H2数据库。 我使用CREATE TABLE PERSON (ID INT PRIMARY KEY, FIRSTNAME VARCHAR(64), LASTNAME VARCHAR(64));创建一个表CREATE TABLE PERSON (ID INT PRIMARY KEY, FIRSTNAME VARCHAR(64), LASTNAME VARCHAR(64)); 。 然后,我使用SELECT * FROM PERSON从此(空)表中选择所有内容。 到目前为止,一切都很好。 但是,如果将URL更改为"jdbc:h2:mem:test" ,唯一的区别是数据库现在仅在内存中,这给了我org.h2.jdbc.JdbcSQLException: Table "PERSON" not found; SQL statement: SELECT * FROM PERSON [42102-154] org.h2.jdbc.JdbcSQLException: Table "PERSON" not found; SQL statement: SELECT * FROM PERSON [42102-154] 。 我可能在这里缺少一些简单的东西,但是任何帮助将不胜感激。 回答1 DB_CLOSE_DELAY=-1 hbm2ddl创建表后关闭连接
  • Spring Boot默认的H2 jdbc连接(和H2控制台)(Spring Boot default H2 jdbc connection (and H2 console))
    问题 我只是想查看当我在application.properties未指定任何内容并以mvn spring:run开头时,spring-boot创建的嵌入式H2数据库的H2数据库内容。 我可以看到休眠的JPA正在创建表,但是如果我尝试通过数据库下面的URL访问h2控制台,则该表没有表。 http://localhost:8080/console/ 我看到这样的建议:查看由Spring启动的嵌入式H2数据库的内容 但是我不知道在春季启动时将建议的XML放在哪里,即使我这样做了,我也不希望在配置外部数据库时h2console可用,因此我更有可能需要处理此问题。使用某种条件代码(或者在最理想的情况下(仅当激活了Maven配置文件时我仅包含H2)才允许spring自动处理它)。 是否有人有示例代码显示如何使H2控制台在启动时工作(以及找出spring使用的jdbc连接字符串的方法)? 回答1 这就是我让H2控制台在H2的春季启动中工作的方式。 我不确定这是否正确,但是由于没有其他人提供解决方案,因此我将建议这是最好的方法。 就我而言,我为数据库选择了一个特定的名称,以便在启动H2控制台时可以输入一些内容(在本例中为“ AZ”)。 我认为所有这些都是必需的,尽管似乎忽略了spring.jpa.database-platform并没有任何伤害。 在application.properties中
  • 在内存数据库 h2 中保持连接打开多长时间?(in memory database h2 how long keep connection open?)
    问题 我目前正在内存模式下测试 H2 DB。 我建立了一个连接 h2Con = DriverManager.getConnection( "jdbc:h2:mem:db1", "SA", ""); 我想用 dbunit 进行一些导入并设置 dbUnits db 连接 IDataBaseConnection dBUnitConnection = new DatabaseConnection(h2con); 以及我稍后要查询的导入 所以我的问题是,在内存模式下,我什么时候可以关闭连接? 通常我做这样的事情 try{ //some sql query }catch{ //error handling }finally{ if(connection!=null) connection.close() } 但是在内存中,如果连接关闭,我会丢失数据吗? 那么它应该保持打开状态直到我结束我的程序吗? 回答1 在 URL 中添加DB_CLOSE_DELAY=-1 从 H2 文档: 默认情况下,关闭与数据库的最后一个连接将关闭该数据库。 对于内存数据库,这意味着内容丢失。 要保持数据库打开,请将 ;DB_CLOSE_DELAY=-1 添加到数据库 URL。 要在虚拟机处于活动状态时保留内存数据库的内容,请使用 jdbc:h2:mem:test;DB_CLOSE_DELAY=-1。 因此,您可以将
  • H2 是否支持可序列化隔离级别?(Does H2 support the serializable isolation level?)
    问题 维基百科将幻读现象描述为: 当在事务过程中执行两个相同的查询,并且第二个查询返回的行集合与第一个不同时,就会发生幻读。 它还指出,使用可序列化的隔离级别,幻读是不可能的。 我试图确保在 H2 中是这样,但要么我期望错了,要么我做错了,或者 H2 有问题。 尽管如此,这里的代码: try(Connection connection1 = DriverManager.getConnection(JDBC_URL, JDBC_USER, JDBC_PASSWORD)) { connection1.setAutoCommit(false); try(Connection connection2 = DriverManager.getConnection(JDBC_URL, JDBC_USER, JDBC_PASSWORD)) { connection2.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE); connection2.setAutoCommit(false); assertEquals(0, selectAll(connection1)); assertEquals(0, selectAll(connection2)); // A: select insertOne(connection1); // B
  • javafx与mysql的连接[关闭](javafx connection to mysql [closed])
    问题 关闭。 这个问题是题外话。 它当前不接受答案。 想要改善这个问题吗? 更新问题,使它成为Stack Overflow的主题。 8年前关闭。 改善这个问题 我们正在构建javafx应用程序,它将显示有关股票的信息。 这是网站:http://analiza.host-ed.me/ 但是我们有一个很大的问题。 每个免费主机都不允许远程mysql连接。 这是我的问题。 当我们的站点位于服务器(我链接到该服务器)上时,该远程连接还是本地连接? 当我们将此javafx应用程序放置为站点时,它无法像在本地计算机上一样进行连接...有什么解决方案吗? 感谢帮助。 (我们需要使用免费托管,因为这只是一个学校项目。) 回答1 您可以从JavaFX访问MySQL。 但是JavaFX在客户端上运行,而类似php的东西通常在服务器上运行。 您将需要从Java应用程序到MySQL的连接。 由于托管服务提供商不允许您从Java Client App直接连接到数据库端口,因此您将需要其他连接方式。 您可以通过端口80建立隧道,可以运行servlet(或php服务器代码等)以通过基于HTTP的REST接口拦截传入的流量和代理数据库调用,也可以在客户端本地安装数据库。 我要假设,对于一个学校项目,每个客户端计算机都有自己的数据库是可以的。 在这种情况下,不要使用MySQL
  • 嵌入式 h2 数据库:获取连接但未找到表(Embedded h2 database: getting connection but table not found)
    问题 我正在使用 h2 嵌入式数据库。 当我启动我的应用程序时,数据库被初始化并且我能够获得连接对象。 但是,当应用程序尝试在表中插入数据时,它会抛出 sql 异常“找不到表 XXXX”。 我可以从 H2 控制台查看表格。 同样的查询在控制台上完美运行。 通过有关此主题的其他问题的一些答案,我了解到当数据库为空时会发生这种行为。 但是从 H2 控制台我能够查看和执行查询,并且我已经交叉检查它是同一个数据库,因为我使用完全相同的 url 和用户通过应用程序和 H2 控制台进行连接。 有什么建议可以解决吗? 回答1 所有特权都已到位。 所以有一件事可以肯定,我确实指向了错误的数据库。 但我不知道。 然后我注意到,当我第一次启动应用程序服务器时,创建的db文件的扩展名为mv.db。 当我第一次通过 h2 控制台连接时,创建了一个扩展名为 h2.db 的文件。 因此,确实为相同的用户和 url 创建了两个不同的数据库。 原因是我的应用程序中存在的 h2 驱动程序 jar 是 1.4(测试版)版本,它创建了扩展名为 mv.db 的 db。 我访问的控制台是通过 h2 1.3 版(最后一个稳定版)创建的,它创建了 h2.db 文件。 这个问题是由于应用程序和控制台之间的版本不匹配而出现的。 一旦我将两者都移至 1.4(测试版),问题就解决了。 回答2 我的错误是在两个不同的数据库上工作。
  • 如何将 UCanAccess 连接到使用数据库密码加密的 Access 数据库?(How to connect UCanAccess to an Access database encrypted with a database password?)
    问题 我开发了一个带有 Access 数据库的 Java 应用程序(字典)来存储字典中的单词,我正准备分发它。 我想用密码加密我的数据库,以防止人们访问我的话。 当我设置密码时,Java 代码显示此异常 net.ucanaccess.jdbc.UcanaccessSQLException: Decoding not supported. Please choose a CodecProvider which supports reading the current database encoding. at net.ucanaccess.jdbc.UcanaccessDriver.connect(UcanaccessDriver.java:247) 这是我使用密码加密数据库之前的连接代码.... String s1="jdbc:ucanaccess://"; String user=""; String pass=""; String s4="words.accdb"; public void connectToDB(){ //database connection try { conn = DriverManager.getConnection(s1+s4,user,pass); } catch (SQLException e) { e.printStackTrace(); }
  • 带有 application.properties 的 spring-boot 数据源配置文件(spring-boot datasource profiles w/ application.properties)
    问题 根据反馈更新问题: 我有一个具有三个数据库的 spring-boot 应用程序:用于集成测试的 H2 和用于 qa 和生产的 Postgresql。 由于 spring-boot 为您创建了默认数据源,因此我没有为集成测试定义任何内容。 我以为我会使用 application.properties 来定义我的数据源连接值,但我不确定处理这个问题的最佳方法是什么。 我有两个文件: src/main/resources/application.properties spring.profiles.active=production appName = myProduct serverPort=9001 spring.datasource.url=jdbc:postgresql://localhost/myDatabase spring.datasource.username=user spring.datasource.password=password spring.datasource.driverClassName=org.postgresql.Driver spring.jpa.hibernate.hbm2ddl.auto=update spring.jpa.hibernate.ejb.naming_strategy=org.hibernate.cfg
  • 事务不适用于 Spring 3.1 – H2 – junit 4 – hibernate 3.2(transactions not working with Spring 3.1 – H2 – junit 4– hibernate 3.2)
    问题 我有以下测试.. @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {"/schedule-agents-config-context.xml"}) @TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true) @Transactional public class H2TransactionNotWorkingTest extends SubmitAgentIntegratedTestBase { private static final int FIVE_SUBMISSIONS = 5; @Autowired private ApplicationSubmissionInfoDao submissionDao; private FakeApplicationSubmissionInfoRepository fakeRepo; @Before public void setUp() { fakeRepo = fakeRepoThatNeverFails(submissionDao, null); submitApplication(FIVE
  • 需要代码在Java中创建连接池(Need Code to create Connection Pool in java)
    问题 需要代码来用Java创建连接池吗? 我们如何确保连接池不返回已在使用的同一对象? 如果客户端从连接池中取出连接后关闭了连接,该怎么办? 更新1: 我想用简单Java术语创建它,并想了解它在多线程环境中的工作方式。 我的意思是哪些方法将被同步,哪些方法将不被同步。 另外,这堂课是公开课吗? 如果是,那么任何人都可以访问此类并重新初始化连接池? 更新2: 我有一些代码如下。 但是我不知道“关闭来自池的连接会将其返回到池,它不会物理上关闭连接”。 我也不明白“由于连接是从池中借来的,还没有返回,所以它不是“可用的”,并且不能重新分配给池中的另一个客户端。” import java.util.*; import java.sql.*; class ConnectionPoolManager { String databaseUrl = "jdbc:mysql://localhost:3306/myDatabase"; String userName = "userName"; String password = "userPass"; Vector connectionPool = new Vector(); public ConnectionPoolManager() { initialize(); } public ConnectionPoolManager( //String
  • 如何使用H2数据库创建存储过程?(How to create stored procedure using H2 database?)
    问题 有没有人尝试过使用 H2 数据库创建存储过程? 回答1 要在 Java 函数中访问数据库,您确实需要一个连接。 对于H2,有两种方法可以得到这样的连接: 解决方案 1 :如果 Java 函数的第一个参数是java.sql.Connection ,则数据库提供连接。 对于 SQL,这是一个“隐藏”参数,这意味着您不能也不需要显式设置它。 这被记录在案:用户定义的函数和存储过程,“需要连接的函数”。 例子: CREATE ALIAS QUERY AS $$ ResultSet query(Connection conn, String sql) throws SQLException { return conn.createStatement().executeQuery(sql); } $$; CALL QUERY('SELECT * FROM DUAL'); 解决方案 2 :为了与 Apache Derby 和 Oracle 兼容,您可以使用DriverManager.getConnection("jdbc:default:connection")在 Java 函数中打开一个新连接。 此功能在 H2 版本 1.3.151 及更高版本中可用,默认情况下禁用。 要启用它,请将;DEFAULT_CONNECTION=TRUE附加到数据库 URL。 这是一个有问题的特性,因为如果它在
  • 我的Java Web之路 - JDBC连接池(Druid)初步使用
    本系列文章旨在记录和总结自己在Java Web开发之路上的知识点、经验、问题和思考,希望能帮助更多码农和想成为码农的人。 本文转发自头条号【普通的码农】的文章,大家可以关注一下,直接在今日头条的移动端APP中阅读。因为平台不同,会出现有些格式、图片、链接无效方面的问题,我尽量保持一致。 原文链接:https://www.toutiao.com/i6764181754967228931/ 文章目录 介绍资源“池化”的思维JDBC规范的连接池设计Druid概述添加Druid的依赖生成DataSource对象生成JdbcTemplate对象将JdbcTemplate对象注入到其他组件使用JdbcTemplate对象访问数据库总结 介绍 上篇文章我们使用了Spring JDBC中的JdbcTemplate类来简化我们的租房网应用,其中涉及到JDBC规范中的DataSource接口,当时配置的是H2数据库JDBC驱动的 org.h2.jdbcx.JdbcDataSource 这个类。 然而,直接使用它的话仍然会存在 “每次访问都要建立数据库连接,性能低下” 的问题。本篇文章我们就来解决此问题。 资源“池化”的思维 我们经常会听到连接池、内存池、对象池、线程池等概念,所谓资源的池化,对应英文单词 pool : n.水坑,水塘,池塘(尤指自然形成的); 一滩(液体); 一小片(液体或光)
  • H2 数据库简介
    H2数据库 H2 是使用Java开发的内嵌式数据库,开源。支持内存、文件等多种模式。常用于开发和测试环境。 特性 读操作快, 写操作不如SQLite支持全文检索(提供了内置全文检索和Apache Luncene的全文检索)可以通过浏览器操作数据库 运行模式 Embedded Mode 内嵌模式Server Model 服务器模式混合模式 下载 目前最新版本是 1.4.200 , 于2019/10/14 发布。 Windows 安装版本: https://h2database.com/h2-setup-2019-10-14.exe解压版本, 适合Windows、Linux等操作系统: https://h2database.com/h2-2019-10-14.zip Maven依赖 <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>1.4.200</version> </dependency> Hibernate 在hibernate.cfg.xml 配置: <property name="dialect"> org.hibernate.dialect.H2Dialect </property> 使用 数据库连接地址 内嵌 jdbc:h2:~/test