开发者社区 问答 正文

多个项目使用同一个数据库?报错

@JFinal 你好,想跟你请教个问题:

我有2个项目访问的是同一个数据库,都是用的druid连接池。

启动第一个项目时都正常,启动第二个项目报druid异常,当也可以使用。

2016-01-14 16:52:44
 [] [] [ERROR]-[Thread: localhost-startStop-1]-[com.alibaba.druid.pool.DruidDataSource.init()]: init datasource error, url: jdbc:postgresql://192.168.6.97:5432/project2
org.postgresql.util.PSQLException: 尝试连线已失败。
	at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:257)
	at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:65)
	at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:159)
	at org.postgresql.Driver.makeConnection(Driver.java:416)
	at org.postgresql.Driver.connect(Driver.java:283)
	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:148)
	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:785)
	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:142)
	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:211)
	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:142)
	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1388)
	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1442)
	at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:632)
	at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:934)
	at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:930)
	at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:102)
	at com.jfinal.plugin.activerecord.TableBuilder.build(TableBuilder.java:80)
	at com.jfinal.plugin.activerecord.ActiveRecordPlugin.start(ActiveRecordPlugin.java:171)
	at com.jfinal.core.Config.startPlugins(Config.java:87)
	at com.jfinal.core.Config.configJFinal(Config.java:48)
	at com.jfinal.core.JFinal.init(JFinal.java:65)
	at com.jfinal.core.JFinalFilter.init(JFinalFilter.java:49)
	at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279)
	at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260)
	at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:105)
	at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4574)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5193)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: Illegal UTF-8 sequence: byte 2 of 2 byte sequence is not 10xxxxxx: -62
	at org.postgresql.core.UTF8Encoding.checkByte(UTF8Encoding.java:28)
	at org.postgresql.core.UTF8Encoding.decode(UTF8Encoding.java:103)
	at org.postgresql.core.PGStream.ReceiveString(PGStream.java:329)
	at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:424)
	at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:203)
	... 33 more



我使用的数据库是postgresql  ,请问如何配置 druid 能使得多个项目访问同一个数据库不报错。

展开
收起
爱吃鱼的程序员 2020-06-10 15:00:42 1106 分享 版权
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

      先关掉正常启动的那个项目,再启动一下这个不正常的项目,先确保不是两个项目互相之间造成的影响回复<aclass='referer'target='_blank'>@JFinal:找到原因了,是连接池初始化太大,多个系统初始化连接数的和超过了数据库端设置的值,所以报错了。感谢波总指点!回复<aclass='referer'target='_blank'>@romeo2015:这就太奇怪了,是不是postgresql服务端不允许多个客户端连接?或者接池的初始化池太大?又或者是同一个用户不允许同时使用两个客户端连?两个项目分别单独启动都没问题,启动完一个后,后启动的就会报这个错误。。

    2020-06-10 15:00:57
    赞同 展开评论