求助:Tomcat与MySQL连接问题,弄了4天了没出来

时间:2021-05-15 14:52:56

所报错误信息:
The server encountered an internal error () that prevented it from fulfilling this request.

exception 

javax.servlet.ServletException: Communication failure during handshake. Is there a server running on 192.168.1.100:3306?



Tomcat与mySql的连接就是把MySql的JDBC驱动放到%JAVA_HOME%\bin下,在放到Tomcat的common\lib下,同时加到classpath里,这样就行了吧?

我看有人说要同时把MySQL的JDBC驱动放到Java的一个目录下,不知是必须的吗?为什么?

还有我同学说是要配数据源,在管理工具->数据源->用户DNS下点添加,选择MySQL ODBC 3.51 DRIVER.我觉得没有用呀,那是给ODBC配的,我用JDBC,也不用JDBC:ODBC桥,
但是她以前给我那样配的就能用,而我现在即使是配了数据源也没好用.不明白.究竟用不用配数据源呢?详细的步骤是什么呢?

  我现在在实习,那个同学不能现场指导,还望各位友人耐心指导.我接触JSP才三周,以前对这块全无了解,所以关于网页、网站没有基本概念,真是头都大了

8 个解决方案

#1


你用的是Tomcat几呢? 如果是5.0的话 我可以帮你

#2


是4.1它和版本的关系很大吗?另外我机子上别人装了一些其他的软件,端口会不会冲突?谢谢

#3


在Tomcat 5.0\conf\Catalina\localhost 建立一个与你所要运行的tomcat工程:例如:你要运行11 你就在里面建立一个11.xml 在11.xml里面加入:
<?xml version='1.0' encoding='gb2312'?>
<Context displayName="Cactus JJtech Web Application 1.0" docBase="11" path="/11" workDir="work\Catalina\localhost\11">
<Resource auth="Container" description="Oracle DataBase" name="mysql数据库名" type="javax.sql.DataSource"/>
<ResourceParams name="mysql数据库名">

   <parameter>
      <name>url</name>
      <value>jdbc:mysql://localhost:3306/chinabank?useUnicode=true&amp;characterEncoding=GBK</value>
    </parameter>
    <parameter>
      <name>driverClassName</name>
      <value>com.mysql.jdbc.Driver</value>
    </parameter>
    <parameter>
      <name>username</name>
      <value>root</value>
    </parameter>
    <parameter>
      <name>password</name>
      <value>root</value>
    </parameter>

#4


我从来没有用过4.1 具体怎么我也不是很清楚

#5


mysql-nt服务启动没有啊

#6


谢谢各位.
mysql-nt已经启动,不过我用3306口上显示还有两个system运行呢,会不会有问题?运行上面程序后在cmd下运行netstat -a时显示3306口的地方总是close_wait,or time_wait,而且与3306连的口总变,不知有没问题?

#7


最快捷的解决办法就是换成Tomcat.5.X

#8


谢谢各位,问题已解决.有高手说把驱动放到应用程序的WEB-INF/lib下,结果正确.
我把%JAVA_HOME%\lib下的驱动删除后,运行正常.但是common\lib下和WEB-INF/lib下的驱动我想删除以查证哪个驱动起作用时都不能删除.不知为什么?

谢谢各位的帮助.

#1


你用的是Tomcat几呢? 如果是5.0的话 我可以帮你

#2


是4.1它和版本的关系很大吗?另外我机子上别人装了一些其他的软件,端口会不会冲突?谢谢

#3


在Tomcat 5.0\conf\Catalina\localhost 建立一个与你所要运行的tomcat工程:例如:你要运行11 你就在里面建立一个11.xml 在11.xml里面加入:
<?xml version='1.0' encoding='gb2312'?>
<Context displayName="Cactus JJtech Web Application 1.0" docBase="11" path="/11" workDir="work\Catalina\localhost\11">
<Resource auth="Container" description="Oracle DataBase" name="mysql数据库名" type="javax.sql.DataSource"/>
<ResourceParams name="mysql数据库名">

   <parameter>
      <name>url</name>
      <value>jdbc:mysql://localhost:3306/chinabank?useUnicode=true&amp;characterEncoding=GBK</value>
    </parameter>
    <parameter>
      <name>driverClassName</name>
      <value>com.mysql.jdbc.Driver</value>
    </parameter>
    <parameter>
      <name>username</name>
      <value>root</value>
    </parameter>
    <parameter>
      <name>password</name>
      <value>root</value>
    </parameter>

#4


我从来没有用过4.1 具体怎么我也不是很清楚

#5


mysql-nt服务启动没有啊

#6


谢谢各位.
mysql-nt已经启动,不过我用3306口上显示还有两个system运行呢,会不会有问题?运行上面程序后在cmd下运行netstat -a时显示3306口的地方总是close_wait,or time_wait,而且与3306连的口总变,不知有没问题?

#7


最快捷的解决办法就是换成Tomcat.5.X

#8


谢谢各位,问题已解决.有高手说把驱动放到应用程序的WEB-INF/lib下,结果正确.
我把%JAVA_HOME%\lib下的驱动删除后,运行正常.但是common\lib下和WEB-INF/lib下的驱动我想删除以查证哪个驱动起作用时都不能删除.不知为什么?

谢谢各位的帮助.