JBoss:无法连接到 MySQL 数据库

Posted

技术标签:

【中文标题】JBoss:无法连接到 MySQL 数据库【英文标题】:JBoss: can not connect to MySQL database 【发布时间】:2012-12-08 08:42:00 【问题描述】:

我将JBoss 作为独立版本运行。我想连接到我本地的mysql database

我复制了模块文件夹中的 mysql 连接器

me@air~/Downloads/jboss/standalone/configuration - 10:56:18  $ ls ../../modules/org/mysql/main/
mysql-connector-java-5.1.22-bin.jar

接下来我将jboss/standalone/configuration中的standalone.xml改成

                <drivers>
                    <driver name="com.mysql" module="org.mysql" />
                    <driver name="h2" module="com.h2database.h2"> <!-- default provided-->
                        <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
                    </driver>
                </drivers>

然后我将数据源添加为

              <datasource jndi-name="java:/bb" pool-name="bb-pool" enabled="true" use-java-context="true" use-ccm="true">
                    <connection-url>jdbc:mysql://127.0.0.1:3306/mydb</connection-url>
                    <driver>mysql</driver>
                    <pool>
                        <min-pool-size>10</min-pool-size>
                        <max-pool-size>100</max-pool-size>
                        <prefill>true</prefill>
                    </pool>
                    <security>
                        <user-name>bb</user-name>
                        <password>bb</password>
                    </security>
                    <statement>
                        <prepared-statement-cache-size>100</prepared-statement-cache-size>
                        <share-prepared-statements>true</share-prepared-statements>
                    </statement>
                </datasource>

我正在使用JBoss AS 7.1。 当我在控制台上启动服务器时,我看到了错误

10:54:47,458 INFO  [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-1) JBAS010400: Bound data source [java:jboss/datasources/ExampleDS]
10:54:47,671 INFO  [org.jboss.as.controller] (Controller Boot Thread) JBAS014774: Service status report
JBAS014775:    New missing/unsatisfied dependencies:
      service jboss.jdbc-driver.mysql (missing) dependents: [service jboss.data-source.java:/bb] 

10:54:47,676 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015951: Admin console listening on http://127.0.0.1:9990
10:54:47,676 ERROR [org.jboss.as] (Controller Boot Thread) JBAS015875: JBoss AS 7.1.1.Final "Brontes" started (with errors) in 2000ms - Started 134 of 212 services (2 services failed or missing dependencies, 74 services are passive or on-demand)

当我点击Ctrl+C 时,我看到了

^C10:54:54,998 INFO  [org.jboss.as.osgi] (MSC service thread 1-8) JBAS011942: Stopping OSGi Framework
10:54:55,004 INFO  [org.jboss.as.logging] JBAS011503: Restored bootstrap log handlers
10:54:55,007 INFO  [com.arjuna.ats.jbossatx] ARJUNA032018: Destroying TransactionManagerService
10:54:55,008 INFO  [com.arjuna.ats.jbossatx] ARJUNA032014: Stopping transaction recovery manager
10:54:55,010 INFO  [org.apache.catalina.core.StandardContext] Container org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/] has not been started
10:54:55,039 INFO  [org.apache.coyote.http11.Http11Protocol] Pausing Coyote HTTP/1.1 on http--127.0.0.1-8080
10:54:55,039 INFO  [org.apache.coyote.http11.Http11Protocol] Stopping Coyote HTTP/1.1 on http--127.0.0.1-8080
10:54:55,043 INFO  [org.jboss.as.controller] JBAS014774: Service status report
JBAS014776:    Newly corrected services:
      service jboss.jdbc-driver.mysql (new available)

10:54:55,044 INFO  [org.jboss.as] JBAS015950: JBoss AS 7.1.1.Final "Brontes" stopped in 47ms

我是 JBoss 的新手,不知道如何解决此问题或了解我在这里做错了什么

【问题讨论】:

【参考方案1】:

我认为在您的数据源中您引用了驱动程序 mysql,但您将驱动程序命名为 com.mysql

尝试将驱动程序名称更改为mysql

请注意:最好使用 CLI 安装驱动程序并使用 CLI 或 Web 控制台构建数据源。使用 AS7 的目的是这些工具可用于您的所有配置,您应该自己接触 XML 的理由很少。

【讨论】:

【参考方案2】:

我也犯了同样的错误。我花了几个小时才发现它有多愚蠢。

在我的例子中,我在 jboss-as 用户下将 jboss 作为服务运行,非常简单。除了当我创建 mysql/main 目录以及其中的文件时,我在另一个用户下。 jboss-as guy 没有权限。

modules/ 目录上的一个简单的 chown 完成了这项工作。

【讨论】:

【参考方案3】:

首先,您的驱动程序定义名称与&lt;datasource&gt; 定义下的驱动程序名称不匹配。将&lt;driver name="com.mysql" ... 替换为&lt;driver name="mysql" ... 以使其工作。

第二,你添加module.xml文件了吗?复制./modules/com/mysql/main文件夹下的MySQL连接器jar是不够的,还得添加module.xml文件:

<?xml version="1.0" encoding="UTF-8"?>

<module xmlns="urn:jboss:module:1.1" name="com.mysql">
  <resources>
    <resource-root path="mysql-connector-java-5.1.26-bin.jar"/>
  </resources>
  <dependencies>
    <module name="javax.api"/>
    <module name="javax.transaction.api"/>
  </dependencies>
</module>

此外,在使用 MySQL 连接器 5.0.8 版时,我遇到了一个类似的问题,即找不到/无法识别驱动程序。当我切换到更新的 5.1.26 版本时它消失了。

【讨论】:

【参考方案4】:

确保您使用的是最新版本的mysql jdbc connector,我通过更换最新的mysql连接器解决了我的同样问题

【讨论】:

以上是关于JBoss:无法连接到 MySQL 数据库的主要内容,如果未能解决你的问题,请参考以下文章

连接网站显示数据库错误:无法连接到数据库:无法连接到MySQL?

jboss as 7 无法连接到 oracle 11.2.0.1.0

无法使用php连接错误连接到mysql:无法连接到'localhost'(10061)上的MySQL服务器[重复]

无法从 MySQL Workbench 连接到 RDS MySQL 数据库

Visual Studio 2010无法连接到MySql服务器

无法使用 MySQL 连接器/ODBC 将 Access DB 连接到 ODBC DSN