SSH项目在本地能运行,但部署在Linux服务器上就报Hibernate operation: Cannot open connection; uncategorized SQLException f

1、报错:

2、分析原因:

先是在网上找了很多解决方案,然后一一去尝试,结果尝试了很多都不行(没有找到问题最根本的原因),以下是我尝试过程中试过的方案(有些也是自己分析出来可能出现的原因去尝试的方案):

网上看到的一些可能原因:

  1. 驱动配置有误:driver=com.mysql.jdbc.Driver
  2. 数据库连接地址有误:url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8(xml配置中&要写成&)密码或帐号有误:username=root, password=root(用户名密码这里不要多了空格
  3. 数据库未启动或无权访问
  4. 项目未引入对应的驱动jar包mysql-connector-java-5.1.6-bin.jar
  5. mysql root没有远程访问的权限,需要增加权限,增加权限的步骤如下:进入mysql数据库:(登录:mysql -u root -p;)grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;flush privileges;
  6. 可能少导了一个包mchange-commons-Java.jar
  7. 请注意自己的xml文件最好不要有空格,还有就是X.properties不能有空格
  8. 可能会时连接池的原因,换其他连接方式

P空间:

xmlns:p="http://www.springframework.org/schema/p"

<!-- 使用XML Schema的p名称空间配置 -->

<bean name="dataSource"  class="org.springframework.jdbc.datasource.DriverManagerDataSource"

  p:driverClassName="com.mysql.jdbc.Driver"

  p:url="jdbc:mysql://localhost:3306/web28_shop"

  p:username="root"

  p:password="sa"/>

 

<!-- 采用property的普通配置 相比之下有点麻烦,但是效果是一样的哦,-->

   <bean name="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">

     <property name="driverClassName"  value="com.mysql.jdbc.Driver" />

      <property name="url" value="jdbc:mysql://localhost:3306/web28_shop" />

      <property name="url" value="jdbc:mysql://网络IP:3306/web28_shop" />

    <property name="username" value="XXUsername" />

    <property name="password" value="password" />

    </bean>

 

自己分析的一些原因:

  1. 做了一个小demo,用原生jdbc写的获取数据库连接能够获取到,而框架中使用时获取不到。想一想有可能是框架在不同平台上的写法不同。又尝试将小demo在本地连接Linux上的数据库,尝试可以连接成功。

为了排除是否是因为不同数据库的原因导致的,就尝试用本地的demo去连接Linux上的用框架不能获取连接的数据库。测试能够连接成功。

说明使用该框架后不管是在本地还是Linux上都不能连接到Linux上的用框架不能获取连接的数据库。确定了是框架创建连接时使用不当的原因。

3、解决问题:

针对上面的分析有可能是数据库驱动与框架版本不兼容的原因,更换一下驱动试试看。

将驱动包换成mysql-connector-java-5.0.8-bin.jar之后就可以连接远程数据库了。在Linux端也能够正常连接了。大功告成!!!

 

分析过程:当时是在本地写了个demo,先测试在Linux上能不能连接到Linux上的数据库,测试ok之后,就尝试在本地远程连接Linux上的数据库,发现也可以,之后在出问题的地方测试能否连接到,结果连接不到,百度上说可能是驱动包的原因,换了一个驱动包之后就解决问题了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值