jdbc c3p0连接mysql 失败 原因汇总,求助!

nuistbaker 2014-09-02 11:38:14
问题描述:
采用c3p0 jdbc 连接本地数据库,在本地测试成功。部署到服务器上失败。

在服务器上部署本地jar程序运行报错: Connections could not be acquired from the underlying database

cause by: A ResourcePool could not acquire a resource from its primary factory or source.

jdbc驱动:mysql-connector-java-5.1.6-bin.jar
mysql版本: 5.6.19.0


DataSource unpooled = DataSources.unpooledDataSource(
"jdbc:mysql://localhost:3306/mysql", "root", "root");
DataSource pooled = DataSources.pooledDataSource(unpooled);
con = pooled.getConnection();

或者是


ComboPooledDataSource dataSource;

dataSource = new ComboPooledDataSource();
dataSource.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/mysql?user=root&password=root&autoReconnect=true");

dataSource.setDriverClass("com.mysql.jdbc.Driver");
dataSource.setMaxPoolSize(50);
dataSource.setMinPoolSize(1);
dataSource.setMaxStatements(80);
dataSource.setMaxIdleTime(1500);
dataSource.setAcquireIncrement(10);
dataSource.setIdleConnectionTestPeriod(600);

// get hold of a Connection an do stuff, in the usual way
con = null;
stmt = null;
rs = null;

con = dataSource.getConnection();



这两种都一样,本地成功,服务器上失败。
我将java代码导出jar包在本地windows cmd下直接运行成功。同样方式在服务器上测试失败。
服务器上使用Phpadmin连接mysql成功。


...全文
1619 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
石惠之恋 2015-06-26
  • 打赏
  • 举报
回复
或者修改下别人的代码,判断conn是否为null,如果为null,则初始化conn,因为我就是这么解决这个问题的,出现这个问题,是因为你的conn连接数被你用完了,然后你还要修改下my.ini的配置修改max_connections值
石惠之恋 2015-06-26
  • 打赏
  • 举报
回复
conn.close()没有关闭
Intboy 2014-09-03
  • 打赏
  • 举报
回复
引用 14 楼 nuistbaker 的回复:
问题解决,原来是jdbc驱动要放到jre里面。 参考文章: http://kangzye.blog.163.com/blog/static/3681922320091033359708/ 附上tomcat配置mysql,也许以后会用到: http://wenku.baidu.com/link?url=mhmfvYwbedkIqkwaN1KBkh1iXwk4ropdenNy8VlBacxYez5tFBCEww_8_95K3t0Lio-7Ww8Sousuo2USHeYsjvAYtMDyLrqYVIcZreKqqr3
nuistbaker 2014-09-03
  • 打赏
  • 举报
回复
问题解决,原来是jdbc驱动要放到jre里面。 参考文章: http://kangzye.blog.163.com/blog/static/3681922320091033359708/ 附上tomcat配置mysql,也许以后会用到: http://wenku.baidu.com/link?url=mhmfvYwbedkIqkwaN1KBkh1iXwk4ropdenNy8VlBacxYez5tFBCEww_8_95K3t0Lio-7Ww8Sousuo2USHeYsjvAYtMDyLrqYVIcZreKqqr3
nuistbaker 2014-09-03
  • 打赏
  • 举报
回复
数据库问题连载中。。。 我第一天解决了在apache+iis+tomcat下发布webservice的问题 第二天,我解决了公网服务器上upupw版本错误导致本地java连接不上本地mysql的问题 第三天。。。我以为webservice也发布了,本地java也能连上数据库了,可谁想到我的客户端调试时,却发现服务器上的tomcat报错,无法找到匹配的数据库驱动 java.sql.SQLException: No suitable driver 我的jdbc驱动应该没问题,不知道为什么会报这个错? 我是本地启动的tomcat,本地的java客户端程序,本地java->本地web->本地tomcat->jdbc(c3p0)->mysql
schwarzenegger 2014-09-03
  • 打赏
  • 举报
回复
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option; flush privileges; MySQL 赋予用户权限(grant %-远程和localhost-本地区别) ------------------------------------------------------------------------------------------------------- grant all privileges on *.* to 'root'@localhost identified by 'root' with grant option;
nuistbaker 2014-09-02
  • 打赏
  • 举报
回复
希望这个帖子能够为所有遇到同样问题的后来者做一个参考。
ix_fly 2014-09-02
  • 打赏
  • 举报
回复
引用 10 楼 nuistbaker 的回复:
我的问题是服务器上采用的upupw整合包版本问题,替换成UPUPW_APACHE_PHP5.2.17经典终极版0808。问题解决。 该整合包启动的mysql,无法通过mysql命令行工具登录,具体什么原因其实已经不重要了,mysql连接不上的4个直接原因无非是: 1,mysql没启动 2,port不对 3,用户名不对 4,密码不对 我遇到的upupw整合包版本的问题算是对之前各种原因的一个补充。希望对大家有所帮助。
楼主的问题好专业,我连看都看不懂
LOVE-漂泊 2014-09-02
  • 打赏
  • 举报
回复
首先要把连接地址写成吴福气数据库所在地址 其次就看有没有远程连接的权限
nuistbaker 2014-09-02
  • 打赏
  • 举报
回复
我的问题是服务器上采用的upupw整合包版本问题,替换成UPUPW_APACHE_PHP5.2.17经典终极版0808。问题解决。 该整合包启动的mysql,无法通过mysql命令行工具登录,具体什么原因其实已经不重要了,mysql连接不上的4个直接原因无非是: 1,mysql没启动 2,port不对 3,用户名不对 4,密码不对 我遇到的upupw整合包版本的问题算是对之前各种原因的一个补充。希望对大家有所帮助。
nuistbaker 2014-09-02
  • 打赏
  • 举报
回复
问题已经解决。 除了我查到的各种问题: (引自http://jyao.iteye.com/blog/1915561) 1,驱动配置有误:driver=com.mysql.jdbc.Driver 2,数据库连接地址有误:url=jdbc:mysql://localhost:3306/test?3useUnicode=true&characterEncoding=utf8 3,密码或帐号有误:username=root password=root 4,数据库未启动或无权访问 5,项目未引入对应的驱动jar包mysql-connector-java-5.1.6-bin.jar 6,mysql root没有远程访问的权限,需要增加权限,增加权限的步骤如下: 进入mysql数据库: grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option; flush privileges; 这个已经很全了,但是都不是我的问题。
nuistbaker 2014-09-02
  • 打赏
  • 举报
回复
对不起,描述有问题,但是不能编辑没办法了。
闲去野鹤 2014-09-02
  • 打赏
  • 举报
回复
你应该先telnet 远程数据库?
  • 打赏
  • 举报
回复
采用c3p0 jdbc 连接本地数据库,在本地测试成功。部署到服务器上失败。 但是你描述的好像不是服务器访问服务器上的数据库。
枫醉秋 2014-09-02
  • 打赏
  • 举报
回复
关闭本地和服务器上面的防火墙试试
nuistbaker 2014-09-02
  • 打赏
  • 举报
回复
不需要远程访问,是服务器上的程序访问服务器上的本地数据库
  • 打赏
  • 举报
回复
本地数据库是否有远程访问权限。
nuistbaker 2014-09-02
  • 打赏
  • 举报
回复
不要沉。。。

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧