Как исправить Не найден подходящий драйвер для jdbc: mysql: // localhost: 3306 / XXXX в NetBeans - PullRequest
0 голосов
/ 05 мая 2019

У меня есть веб-приложение, которое должно извлекать данные из базы данных localhost. Я использую Severlets и MySQL JDBC, eclipseLink. Проблема в том, что когда я развертываю приложение, оно выдает мне следующую ошибку, хотя я создал соединение с базой данных, которое работает нормально, и добавил в библиотеку последний jar mysql (8.0.16).

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 говорит, что нет подходящего драйвера.

ПОЖАЛУЙСТА, ПОМОГИТЕ, я пытался решить эту проблему уже более недели, и решения связанных с этим проблем на этом сайте не кажутся полезными.

1 Ответ

0 голосов
/ 06 мая 2019

Я вижу несколько вопросов здесь.Прежде всего, попробуйте подключиться к вашей базе данных с помощью простой программы:

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 - Проблема с часовым поясом

И последнее, но не менее важное: если вы всеработает, и вы хотите обновить драйвер в Glassfish, вам нужно скопировать банку в% GLASSFISH% / glassfish / lib

...