设置 Glassfish 数据源问题

Setting up Glassfish Datasource issue

我晚上大部分时间都在设置 Glassfish 5.0.1 服务器,配置 JDBC 连接池并部署应用程序。我把这个问题 运行 变成: Unable to Connect to JDBC Connection Pool from Glassfish and GlassFish connection pool

在 Glassfish for MySQL 中,到处都声明使用 Resource Type: javax.sql.DataSourceDatasource Classname: com.mysql.jdbc.jdbc2.optional.MysqlDataSource

无论我将 MySQL 连接器 jar glassfish/libdomain/domain1/bin/lib 放在哪里,以上方法都不起作用。每次我都删除了我拥有的池,清除了缓存并重新启动了服务器。

我最终切换到 java.sql.DriverDriver Classname: com.mysql.jdbc.Driver

问题是如何使数据源工作?

另外,Driver和Datasource有什么区别?

编辑

Payara-5 也有同样的问题。我将 jar 放入 lib/ext 但驱动程序以同样的方式失败并在那里解决了它。

Ping Connection Pool failed for MySQLConnPool2. Class name is wrong or classpath is not set for : com.mysql.jdbc.jdbc2.optional.MysqlDataSource Please check the server.log for more details.

5.0 to 8.0 release notes 中引用了包名称从 com.mysql.jdbc 到 com.mysql.cj 的更改。查看 mysql-connector-java-8.0.12.jar,数据源包中似乎有一个未记录的更改 com.mysql.cj.jdbc .MysqlDataSource.

我已经通过管理控制台在 Payara 5 中使用 com.mysql.cj.jdbc.MysqlDataSource 进行了测试,它有效:-)

我在 glassfish 5.0 和 mysql-connector-8.0.16.jar 上遇到了同样的问题。查看 glassfish 的文档,我们不得不将 mysql-connector-5.1.47-bin.jar 放入 domains/domain1/lib 目录。 8.0 的连接器没有 *-bin.jar 文件。所以我尝试将 *5.1.47-bin.jar 放入 domain1/lib 目录。重新启动我的 glassfish 服务器后,我尝试使用 javax.sql.XADataSource 和数据源名称 com.mysql.jdbc.jdbc2.optional.MysqlXADataSource 为 MySQL 定义一个新的连接池。按照 glassfish 文档 MySQL Server Database Type 4 Driver 中的描述设置属性后,我得到了一个成功的 ping