无法将 MySQL 数据源添加到 WildFly

Unable to add MySQL data source to WildFly

我在向 WildFly 添加 MySQL 数据源时遇到了一些问题。我已经安装(可能不正确?)MySQL 驱动程序,如下所示:

然后,当我去添加数据源时,可用驱动程序名称列表中缺少 MySQL:

我怀疑我一定是安装不正确,因为我的第一个屏幕截图中缺少驱动程序版本,并且 JDBC compliant 下没有显示任何内容。不知道这是否正常。

我已经按照许多指南安装了驱动程序,这就是我完成的方法。我从 https://dev.mysql.com/downloads/connector/j/ 下载了驱动程序。驱动程序位于以下文件路径中:

wildfly-22.0.0.Final\modules\system\layers\base\com\mysql\main

文件夹结构如下所示:

这是module.xml的内容:

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

这是 standalone.xml 中相关驱动程序部分的样子(包括 h2 和 derby-main 驱动程序,它们似乎工作正常):

<drivers>
   <driver name="h2" module="com.h2database.h2">
      <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
   </driver>
   <driver name="derby-mem" module="org.apache.derby.mem"/>
   <driver name="mysql" module="com.mysql">
      <driver-class>com.mysql.jdbc.Driver</driver-class>
      <xa-datasource-class>
         com.mysql.jdbc.jdbc2.optional.MysqlXADataSource
      </xa-datasource-class>
   </driver>
</drivers>

我肯定遗漏了一些明显的东西。

我强烈建议为此使用脚本而不是 UI。更易于维护和升级。

创建一个名为 create_resources.cli 的文件,其中包含:

embed-server --server-config=standalone.xml --std-out=echo
    
batch

#
# add the module
#
module add --name=com.mysql --resources=${user.home}/Downloads/mysql-connector-java-8.0.23/mysql-connector-java-8.0.23.jar --dependencies=javax.api,javax.transaction.api

#
# create the driver
#
/subsystem=datasources/jdbc-driver=mysql:add(driver-name="mysql",driver-module-name="com.mysql",driver-class-name=com.mysql.cj.jdbc.Driver)

#
# create the datasource
#
/subsystem=datasources/data-source=YourDSName/:add(connection-url=jdbc:mysql://localhost:3306/yourDBName,driver-name=mysql,jndi-name=java:jboss/datasources/YourDSName,password=thepassword,user-name=theuser)

run-batch

现在,在 Wildfly 停止的情况下,切换到 Wildfly 安装目录并 运行

bin\jboss-cli.bat --file=create_resources.cli

这将执行以下操作:

  1. 为您添加模块。我在您的主目录的 Downloads 目录中有驱动程序。显然它可以在任何你喜欢的地方。
  2. 添加名为“mysql”的驱动程序
  3. 添加名为“YourDSName”的数据源。

这样做的好处是您不需要运行 UI 来添加数据源。此外,我不断更改我的 Wildfly 安装版本以及特定版本中安装的内容。这样您就可以非常快速地重新生成更改。