mysql - 如何修复 找不到适合 jdbc 的驱动程序 :mysql://localhost:3306/XXXX in netbeans

标签 mysql jakarta-ee localhost glassfish netbeans-8

我有一个 Web 应用程序,应该从本地主机数据库中提取数据。我正在使用 Severlets 和 mysql jdbc、eclipseLink。问题是,当我部署应用程序时,它给了我以下错误,即使我已经创建了工作正常的数据库连接并将最新的 mysql (8.0.16) jar 添加到库中。

Caused by: Exception [EclipseLink-4002] (Eclipse Persistence Services - 
2.7.0.v20170811-d680af5): 
org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: No suitable driver found for 
jdbc:mysql://localhost:3306/sampledb?zeroDateTimeBehavior=convertToNull
Error Code: 0

我还完成了 netbeans 8.2 和 java 的全新安装,但错误仍然存​​在。但我使用两台不同的电脑,这是同样的问题。由于某种原因,我认为 netbeans 有一个错误。我使用 glassfish 作为我的服务器,工作正常。

这是我的项目结构的链接:https://res.cloudinary.com/dpsotxezr/image/upload/v1557082088/structure_2_migcvz.png

手动尝试连接 mysql 服务器时我也遇到此错误

mysqld: File '.\binlog.index' not found (OS errno 13 - Permission denied)
2019-05-05T18:51:07.133050Z 0 [System] [MY-010116] [Server] C:\Program 
Files\MySQL\MySQL Server 8.0\bin\mysqld.exe (mysqld 8.0.16) starting as 
process 1796
2019-05-05T18:51:09.509588Z 0 [Warning] [MY-010091] [Server] Can't create 
test file C:\Program Files\MySQL\MySQL Server 8.0\data\LAPTOP- 
43BL4A79.lower-test
2019-05-05T18:51:09.510028Z 0 [Warning] [MY-010091] [Server] Can't create 
test file C:\Program Files\MySQL\MySQL Server 8.0\data\LAPTOP- 
43BL4A79.lower-test
2019-05-05T18:51:10.672870Z 0 [ERROR] [MY-010119] [Server] Aborting
2019-05-05T18:51:12.306701Z 0 [System] [MY-010910] [Server] C:\Program 
Files\MySQL\MySQL Server 8.0\bin\mysqld.exe: Shutdown complete (mysqld 
8.0.16)  MySQL Community Server - GPL.
  1. 所以我已经将最新的mysql驱动程序添加到项目库
  2. 我也尝试过 Class.forName("com.mysql.jdbc.Driver"); 但还是不行
  3. Glassfish 表示没有合适的驱动程序。

请帮忙,我已经尝试解决这个问题一个多星期了,该网站上的相关问题解决方案似乎没有帮助。

最佳答案

我在这里看到几个问题。首先,尝试使用一个简单的程序连接到您的数据库:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

// Notice, do not import com.mysql.cj.jdbc.*
// or you will have problems!

public class LoadDriver {
    public static void main(String[] args) {
        try {
            // The newInstance() call is a work around for some
            // broken Java implementations

            Class.forName("com.mysql.cj.jdbc.Driver").newInstance();
        } catch (Exception ex) {
            // handle the error
        }
    }
}

(复制自 https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-usagenotes-connect-drivermanager.html )

如您所见,类名已更改为com.mysql.cj.jdbc.Driver

然后您尝试手动连接:您的权限被拒绝。我已经很长时间没有使用 Windows 了,但也许你可以将 MySql 安装到另一个文件夹中,例如 C:\mysql(另请参阅: https://dev.mysql.com/doc/refman/8.0/en/windows-installation-layout.html )

然后您可能会遇到最新驱动程序的另一个问题:MySQL JDBC Driver 5.1.33 - Time Zone Issue

最后但并非最不重要的一点:如果一切正常并且您想更新 Glassfish 中的驱动程序,您需要将 jar 复制到 %GLASSFISH%/glassfish/lib

关于mysql - 如何修复 找不到适合 jdbc 的驱动程序 :mysql://localhost:3306/XXXX in netbeans,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55995376/

相关文章:

MultiSelectList 中的 C# .NET 查询不起作用

sql - 在MySQL中随机选择具有两个条件的有限数量的记录

java - 显示 servlet 嵌入的 pdf 文件

web-services - 如何使用 ssl 保护 Web 服务

php - 如何在 Sublime Text Build 中获取文件夹名称

mysql - EasyPHP 无法连接到本地主机(端口 8080)

ruby-on-rails - OAuth::Unauthorized 401 在 rails 中对 omniauth-twitter 未授权

MySQL where 子句定位依赖子查询

mysql - 使用 MySQL 改进查找模糊重复项

jakarta-ee - 单个 JTA 事务中的多个 XA 数据源