Не удалось найти драйвер с именем класса com mysql jdbc driver
I would like to connect to a MySQL database using the native driver, however I am having problems getting the program to find the class. I have put the file mysql-connector-java-3.0.11-stable-bin.jar into my java home directory:
Yet when I run the following code I get a ClassNotFound exception. As I understand it all I should have to do is add the jar file into the \ext directory. I added the 'import com.mysql.jdbc.Driver;' line just to see if it would compile, and it does, so something is finding the .jar file. After searching the forum, there are references to the class path, but I'm pretty sure that the VM only checks the class path after it has looked in the \ext directory. Any ideas on why I get the exception would be greatly appreciated, also, how do I make my code look like code when I post it? thanks,
import java.sql.*;
import java.util.*;
public class Access1
public static void main( String args[] )
try
Class.forName("com.mysql.jdbc.Driver");
>
catch( java.lang.ClassNotFoundException e )
System.err.print("ClassNotFoundException: "+ e.getMessage());
>
>
Comments
". As I understand it all I should have to do is add the jar file into the \ext directory. " - I think this is a very bad idea.
I'd put that JAR closer to the rest of your code and add it to the CLASSPATH using the -classpath option on both javac.exe for compiling and java.exe for running.
Click on the formatting help link above - it'll tell you how to use the [ code][ code] tags. - MOD
Or if you still want to use the "ext" directory, use the right one. You put it into the one that's used when you compile your code, but not the one that's used when you run your code. That one you will find somewhere under C:\Program Files\Java.
thanks for the advice, I've found the problem, I had another version of java.exe in my \system32 directory, I don't know why it's there, this was being called rather than the version in my java home directory, I renamed the file in the \system32 directory, so now it works fine. I don't know if the \system32 version was important?
just seen DrClap's reply, I did notice the Java files under C:\Program Files, but my environment path points to my Java home directory, so this is where I've been running from, I don't know if there is a good reason to point the Windows path to the java.exe under program files instead?
You can't realize how helpfull was your comment for me! I were experiencing a problem just as yours and I'd tried almost everything. As i renamed the file java.exe in the system32 directory everything worked fine!
Thank you very much!
hi
i have a very similar problem. im using the Connecter/J driver for MySQL. I have saved it in the j2sdk1.4.2_04 folder. i have set the class path for it in the AUTOEXEC.BAT file just as it was explained in the documentation.
first i tried to connect to MySQL by typing the code on notepad and it worked fine. when i tried to copy paste that same code into my netbeans file (a JFrame file which i had already created), it doesnt execute! it compiles correctly but on execution it gives the following:
sorry for the above message, it got all messed up! im posting it again:
hi
i have a very similar problem. im using the Connecter/J driver for MySQL. I have saved it in the j2sdk1.4.2_04 folder. i have set the class path for it in the AUTOEXEC.BAT file just as it was explained in the documentation.
first i tried to connect to MySQL by typing the code on notepad and it worked fine. when i tried to copy paste that same code into my netbeans file (a JFrame file which i had already created), it doesnt execute! it compiles correctly but on execution it gives the following:
Mysql has changed the classpath of the classes in the connector/J jar file.
Before, the path started with "com/. " or "org/. "
In the latest jar file, the path starts with "mysql-connector-java-version./com/. "
I've no idea why they did this.
two solution to get around it.
1.Unzip all classes to any directory, and put this directory in your classpath.
ex. c:\blablabla\mysql-connector-java-version\com\.
classpath = c:\blablabla\mysql-connector-java-version
2. make a new jar file without "mysql-connector-java. /" in the classpath. Put this jar file in $JAVA_HOME/jre/lib/ext.
I have installed Jira as service, while I was trying to set up the database I am getting an error " Could not find driver with class name: com.mysql.jdbc.Driver " please help in this case.
Server: Ubuntu 18.04.3 (LTS) x64
Database: mysql 5.7
jira version: 8.7
- Copy Link
3 answers
1 accepted
And then unzip it and move the jar file in /lib
Let me know if this helps,
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
After following your answer, my error has been changed, a new error has been thrown.
"Error connecting to database
Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
hostname: Temporary failure in name resolution"
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
in "hostname", just put "localhost" (without the quotes) and it should all be good.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
updated as per your instruction, got an error, please find the screenshot, after the error, by following the Connecting Jira applications to MySQL 5.7, i have updated my.cnf , unable to start mysql server
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
can you please me in this issue.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Please follow these steps: i had the same problem and this helped:
- Choose "Platform independent" instead of (Ubuntu, . )
- Download the ZIP File: Platform Independent (Architecture Independent), Compressed TAR Archive
- Copy the .JAR file from ~/Downloads/mysql-connector-java-8.0.23/mysql-connector-java-8.0.23.jar to your installation directory (/opt/atlassian/jira/lib)
- restart jira: Go to /opt/atlassian/bin and run ./stop-jira.sh then run ./start-jira.sh
Я разрабатываю веб-приложение с помощью Maven spring и hibernate, и мне нужно создать схему с помощью hibernate, для которой у меня было следующее в моем pom.xml для подключения к базе данных MySQL 5.5.
это импортные mysql-connector-java-5.1.15.jar в своем Libraries под Maven Dependencies но когда я пытаюсь подключиться к базе данных, это дает мне Exception in thread "main" org.hibernate.HibernateException: JDBC Driver class not found: com.mysql.jdbc.Driver .
я делал это как газиллионы раз, но я сделал это, когда я не использовал Maven для управления своими зависимостями и создания проекта. Я просто раньше у него был тот же файл jar в на Dynamic Web Project в Eclipse IDE.
может кто-нибудь сказать мне, что мне здесь не хватает и что еще мне нужно, чтобы эта банка была в моем пути сборки?
для начала, jar, который мне нужно подключить к MySQL 5.5, должен был быть mysql-connector-java-5.1.15-bin.jar а не mysql-connector-java-5.1.15.jar . Во-вторых, эта банка недоступна в репозитории maven, поэтому мне нужно было вручную добавить ее в локальный репозиторий maven, а затем добавить ее как зависимость в my pom.xml .
добавлять mysql-connector-java-5.1.15-bin.jar в локальный репозиторий maven по
а затем добавление следующей зависимости в pom.xml проекта.
Спасибо за ответы выше-просто комментарий для пользователей NetBeans: (имена, которые будут заменены вашими версиями)
- банку mysql можно загрузить здесь
- исполняемый файл mvn можно найти в c:\Program Files\NetBeans 7.2.1\java\maven\bin
- выполнить set JAVA_HOME=C:\Program Files (x86)\Java\jdk1.7.0_10
- затем эта команда будет работать: mvn install:install-file -Dfile=mysql-connector-java-5.1.15-bin.jar -DgroupId=mysql -DartifactId=mysql-connector-java -Dversion=5.1.15-bin -Dpackaging=jar
- установленный пакет можно найти в репозитории m2 в вашей домашней папке
распакуйте созданный файл JAR. Есть папка WEB-INF внутри. Затем проверьте, является ли mysql-connector-java-5.1.15.jar существует в этом WEB-INF/lib.
Я пытаюсь создать соединение с моей базой данных, когда я ставлю тестовый код с помощью основного метода, он работает без проблем. Однако при попытке получить доступ к нему через Tomcat 7 он терпит неудачу ошибка:
Я использую пул. Я поставил в mysql connector (5.1.15), dbcp(1.4) и пул (1.4.5) библиотеки в WEB-INF/lib и in .классов, а также. Я использую Eclipse IDE. Мой код для драйвера базы данных:
начало трассировки стека:
что вызывает эту ошибку?
Попробуйте поместить jar драйвера в папку lib сервера. ($CATALINA_HOME / lib)
Я считаю, что пул соединений должен быть настроен еще до создания экземпляра приложения. (По крайней мере, так это работает в JBoss)
причина, по которой вы получили эту ошибку:
это потому, что вы забыли зарегистрировать драйвер JDBC mysql с приложением java.
вот что вы написали:
должно быть:
вам нужно будет прочитать руководство по конкретному драйверу mysql JDBC, чтобы найти точную строку для размещения внутри класса.forName(". ") параметр.
класса.forName не требуется с JDBC V. 4
у меня была та же проблема с использованием Tomcat7 с mysql-connector-java-5.1.26, что я положил в оба моих $CATALINA_HOME/lib и WEB-INF/lib, на всякий случай. Но он не найдет его, пока я не использую один из этих двух операторов, прежде чем получить соединение:
затем я продолжил удаление mysql-connector-java-5.1.26 из $CATALINA_HOME / lib, и соединение все еще работает.
- нажмите "Open Launch Config" > вкладка Classpath установите местоположение MySQL connector/j jar. или
- расположение сервера > выберите опцию, которая говорит " использовать установку Tomcat (взять под контроль установку Tomcat)"
У меня была библиотека mysql jdbc как в $CATALINA_HOME/lib, так и в WEB-INF / lib, но я получил эту ошибку . Мне нужны были занятия.forName("com по.для MySQL.интерфейс jdbc.Водителя"); чтобы заставить его работать.
у меня была та же проблема, все, что вам нужно сделать, это определить переменную среды classpath для tomcat, вы можете сделать это, добавив файл, в моем случае C:\apache-tomcat-7.0.30\bin\setenv.bat , содержащих:
затем код, в моем случае:
Я запускаю Tomcat 7 в Eclipse с Java 7 и использую драйвер jdbc для MSSQL sqljdbc4.сосуд.
при запуске кода за пределами tomcat, из автономного приложения java, это сработало просто отлично:
однако, когда я попытался запустить тот же код внутри Tomcat 7, я обнаружил, что могу заставить его работать, только сначала зарегистрировав драйвер, изменив вышеизложенное на это:
добавить артефакт из maven.
Бро, вы также можете написать код, как показано ниже:
Если вы используете netbeans, вы должны добавить драйвер JDBC Mysql в список библиотек проекта, в свойствах вашего проекта
У меня также была та же проблема некоторое время назад, но я решил эту проблему.
для этого исключения могут быть разные причины. И один из них может заключаться в том, что банка, которую вы добавляете в свою папку lib, может быть старой.
попробуйте выяснить последняя версия mysql-connector-jar и добавьте это в свой путь к классам. Это может решить вашу проблему. Моя была решена вот так.
большую часть времени это происходит потому, что два mysql-connector-java-3.0.14-production-bin.файл jar. Один в папке lib tomcat, а другой в пути к классам проекта.
просто попробуйте удалить mysql-connector-java-3.0.14-production-bin.jar из папки lib.
таким образом, это работает для меня.
из того, что я заметил, Может быть две причины для этого исключения: (1)имя вашего водителя написано неправильно. (2)драйвер не был должным образом связан с проектом Java Шаги для выполнения в Eclipse: (1)Создайте новый проект Java. (2)скопируйте файл jar разъем (3)щелкните правой кнопкой мыши на проекте Java и вставьте его туда. (4)щелкните правой кнопкой мыши на проекте Java - > свойства - >путь сборки Java - >библиотеки - > добавить Jar - >выберите проект ur(выберите файл jar из раскрывающийся список) и нажмите ok.
убедитесь, что соединитель базы данных может быть достигнут вашим classpath, когда под управлением (не компилируется) программа, например:
кроме того, если вы используете старую версию Java (pre JDBC 4.0), прежде чем делать DriverManager.getConnection эта строка требуется:
при разработке с использованием Ubuntu (Xubuntu 12.04.1) мне "пришлось" сделать следующее:
Eclipse Juno (загружено, не установлено через программный центр), Tomcat 7 (загруженный в пользовательский каталог пользователя) также добавлен как сервер в Eclipse, Динамический веб-проект с сервлетом 3.0, Сервер MySQL на localhost настроен и протестирован с помощью пользователя и пароля (обязательно проверьте) MySQL драйвер разъема 5.1.24 jar,
Я "имел", и я повторяю "имел", нам класс.Загрузить ("com.для MySQL.интерфейс jdbc.Driver") оператор вместе с добавлением драйвера соединителя.jar должен быть в папке lib веб-проекта, чтобы он работал в этой ситуации.
важно. после копирования драйвера.jar to the lib убедитесь, что вы обновили свой проект в Eclipse перед запуском сервлета через Tomcat.
Я попытался добавить файл jar драйвера соединителя через Путь сборки с и без ClassLoad, но это не сработало!
надеюсь, это поможет кому-нибудь начать разработка с этой конкретной ситуацией: сообщество Java предоставляет "много" документации, но есть так много переменных, что его трудно охватить все из них, и это делает вещи очень трудными для нового парня.
Я думаю, если бы кто-нибудь мог объяснить, почему класс.Нагрузка требуется здесь (в этой ситуации), это было бы полезно.
поскольку никто не дал этого ответа, я также хотел бы добавить, что вы можете просто добавить файл драйвера jdbc ( mysql-connector-java-5.1.27-bin.jar в моем случае) в папку lib вашего сервера(Tomcat в моем случае). Перезапустите сервер и он должен работать.
проверьте наличие опечатки в url-адресе соединения, например
"jdbc: mysql: / / localhost:3306 / report "("отчет" - это имя БД)
добавьте класс драйвера в bootstrapclasspath. Проблема в java.язык SQL.DriverManager, который не видит драйверы, загруженные загрузчиками классов, отличными от загрузчика классов bootstrap.
из другого потока stackoverflow:
"во-вторых. Убедитесь, что у вас есть MySQL JDBC Driver aka Connector/J в пути к классам JMeter. Если нет-скачайте, распакуйте и отбросьте mysql-connector-java-x.xx.xx-bin.банку в папку JMeter /lib. Перезапуск JMeter потребуется, чтобы забрать библиотеку"
пожалуйста, убедитесь, что .jar-файл добавляется в папку lib.
вы можете вставить банку в путь времени выполнения jboss, как это:
C:\User\user\workspace\jboss-as-web-7.0.0.Final\standalone\deployments\MYapplicationEAR.ухо\тест.война\WEB-INF\lib ca marche 100%
Я пытаюсь запустить свой бэкэнд Spring Boot с двумя профилями: один использует H2 в базе данных памяти, а второй - MySQL. База данных H2 работает просто отлично, но когда я переключаюсь на MySQL, я получаю
Я пытался удалить .m2, повторно импортировать, maven clean, скомпилировать, установить и большинство вещей, которые я мог найти в Интернете, но безуспешно. Самое смешное, что у меня есть другой проект только с базой данных MySQL, у меня была похожая проблема, но добавление зависимости mysql-connector-java решило ее. Я понятия не имею, прямо сейчас.
pom.xml
Ответ так неловко. Я добавил строку драйвера application.properties точкой с запятой . Очевидно, он не распознал этот драйвер.
В моем случае отсутствовала следующая зависимость:
Просто добавьте зависимости mysql и jdbc, как показано ниже
У меня была такая же проблема, как и у вас. Для меня это было связано с зависимостью от базы данных h2! Я не знаю, как эти два могут влиять друг на друга, но все, что я сделал, это удалил эту зависимость, и теперь она работает просто отлично!
Измените область зависимости драйвера базы данных на «время выполнения»
В моем случае выдает ошибку:
Причина: не удалось загрузить класс драйвера com.mysql.cj.jdbc.Driver в загрузчике классов HikariConfig или загрузчике классов контекста потока.
Итак, я только что добавил зависимость MySQL:
Попробуйте обновить драйвер. Сообщество Coz Mysql обновило имя класса с com.mysql.jdbc.Driver до com.mysql.cj.jdbc. Проверить подробности
Вы не указываете версию драйвера JDBC MYSQL, поэтому вы, вероятно, получаете версию 8.x , в которой драйвер назван не так, как в предыдущих версиях:
У меня была проблема, когда я использовал Spring Boot 2.2.0.RELEASE и мне нужно было подключиться к старой базе данных MySQL (5.1.73), что потребовало от меня перехода на версию mysql-connector-java 5.1.38.
Поскольку Spring boot ожидал более новый mysql-java-соединитель, который был переименован в com.mysql.cj.jdbc.Driver, я также должен был добавить настройку имени класса драйвера источника данных Spring в моей конфигурации db весенней загрузки.
Читайте также: