无法将 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
这将执行以下操作:
- 为您添加模块。我在您的主目录的
Downloads
目录中有驱动程序。显然它可以在任何你喜欢的地方。
- 添加名为“mysql”的驱动程序
- 添加名为“YourDSName”的数据源。
这样做的好处是您不需要运行 UI 来添加数据源。此外,我不断更改我的 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
这将执行以下操作:
- 为您添加模块。我在您的主目录的
Downloads
目录中有驱动程序。显然它可以在任何你喜欢的地方。 - 添加名为“mysql”的驱动程序
- 添加名为“YourDSName”的数据源。
这样做的好处是您不需要运行 UI 来添加数据源。此外,我不断更改我的 Wildfly 安装版本以及特定版本中安装的内容。这样您就可以非常快速地重新生成更改。