猿问

尽管存在“数据库名称”,但仍出现错误“致命:数据库“数据库名称”不存在”

我在 Ubuntu 16.04 上的 Spring Java 应用程序无法从服务器连接到 postgresql 数据库。但是,数据库肯定存在(见图1),所以我可以从PGAdmin或其他查询工具查询数据库。此外,Spring Java 应用程序可以在本地环境中连接到数据库。

有谁知道为什么会出现这个问题以及如何解决?

版本信息。- Postgresql:10.4 - Java:9 - Postgresql JDBC 驱动程序:42.1.4

错误日志如下:


[ERROR][21:14:34][DashboardController.exp():460] Gloal exception Handler

org.cboard.exception.CBoardException: ERROR:FATAL: database "foodmart2" does not exist

    at org.cboard.services.DataProviderService.queryAggData(DataProviderService.java:70)

at org.cboard.services.DataProviderService$$FastClassBySpringCGLIB$$6fb5206b.invoke(<generated>)

at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)

at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:721)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)

at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:85)

at org.cboard.services.role.DataProviderRoleService.query(DataProviderRoleService.java:45)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:629)

at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:618)

at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)


皈依舞
浏览 237回答 2
2回答

暮色呼如

在这两种情况下,您都必须连接到不同的 PostgreSQL 集群。主机或端口必须不同。错误信息表明用户和密码都没有问题,但该名称的数据库不存在。

慕盖茨4494581

对不起。这个问题是由于我对应用程序结构的了解不够。还有一个我不知道的数据库连接点。最初,应用程序是通过 Spring MyBatis 连接到数据库的。但是,还有一个使用JDBC的内部连接点,我并没有完全认出它。JDBC url 被定义为 localhost;它应该是我的服务器地址。我更改了JDBC url,问题解决了。
随时随地看视频慕课网APP

相关分类

Java
我要回答