【问题标题】:Unable to connect to mysql database using tomcat6 on ubuntu无法在ubuntu上使用tomcat6连接到mysql数据库
【发布时间】:2011-02-09 12:07:00
【问题描述】:

我能够在我的本地系统上部署应用程序....连接到同一个远程数据库...但是当我在 ubuntu 服务器上部署相同的 war 文件时,我得到以下异常

javax.servlet.ServletException: Could not connect to wikipedia database...
    org.wikipedia.miner.service.WikipediaMinerServlet.init(WikipediaMinerServlet.java:81)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    java.lang.reflect.Method.invoke(Method.java:616)
    org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:244)
    java.security.AccessController.doPrivileged(Native Method)
    javax.security.auth.Subject.doAsPrivileged(Subject.java:537)
    org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:276)
    org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:162)
    org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:115)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
    org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    java.lang.Thread.run(Thread.java:636)

我什至将mysql连接器jar放在tomcat6 lib目录下....请帮助

【问题讨论】:

  • 也许您必须从​​本地 IP 地址授予连接。检查mysql级别的权限。
  • 我无法清楚地理解您的陈述......我在这里使用的用户名和密码与我在本地系统中使用的用户名和密码相同在mysql所在的服务器机器上部署应用

标签: mysql database ubuntu tomcat6


【解决方案1】:

两个 MySQL 服务器的配置是否相同?两者都允许通过 TCP 套接字和/或本地 Unix 域套接字访问?

“无法连接”表明 JDBC 甚至无法访问服务器尝试登录。如果您通过 TCP 连接,请检查是否有防火墙规则阻止本地连接(localhost:* -> localhost :3306 被拒绝)。对于本地套接字,检查运行 Tomcat 的用户是否可以访问套接字文件以及它所在的目录(应该是 /var/run/mysqld/mysqld.sock)。

【讨论】:

  • 从本地系统和 ubuntu 服务器我连接到同一个 mysql 数据库。 mysql 数据库存在于同一台 ubuntu 机器上。
  • 那么“localsystem.yoursite.com”和“ubuntuntuserver.yoursite.com”都连接到在“ubuntuserver.yoursite.com”上运行的mysql实例?或者你的意思是每个服务器都有自己的 mysql 副本,并且在每个 mysql 副本中存在相同的数据库/记录集?
  • 我的意思是第一个““localsystem.yoursite.com”和“ubuntuntuserver.yoursite.com”都连接到在“ubuntuserver.yoursite.com”上运行的mysql实例”
  • 然后您必须检查 ubuntuserver 上的 MySQL 实例是否配置为接受 TCP 连接。 my.cnf/my.ini 文件中有用于此目的的选项,以及用于控制 TCP 网络的命令行参数。您可以简单地检查 MySQL 是否正在使用netstat -tan|grep 3306 侦听 TCP 端口,并查看是否有任何返回(假设 MySQL 未配置为使用不同的端口)。
猜你喜欢
  • 2015-11-14
  • 2011-05-19
  • 1970-01-01
  • 1970-01-01
  • 2015-10-28
  • 2022-11-10
  • 2015-03-09
  • 2021-01-20
  • 1970-01-01
相关资源
最近更新 更多