С двумя нижеприведенными классами я попытался подключиться к базе данных MySQL. Тем не менее, я всегда получаю эту ошибку:
Ср дек 09 22:46:52 CET 2015 ПРЕДУПРЕЖДЕНИЕ. Установление SSL-соединения без проверки подлинности сервера не рекомендуется. В соответствии с требованиями MySQL 5.5.45+, 5.6.26+ и 5.7.6+ SSL-соединение должно быть установлено по умолчанию, если явная опция не установлена. Для соответствия существующим приложениям, не использующим SSL, свойство verifyServerCertificate установлено в значение «false». Вам нужно либо явно отключить SSL, установив useSSL = false, либо установить useSSL = true и предоставить хранилище доверенных сертификатов для проверки сертификата сервера.
Это тестовый класс с main
методом:
public class TestDatabase {
public static void main(String[] args) {
Database db = new Database();
try {
db.connect();
} catch (Exception e) {
e.printStackTrace();
}
db.close();
}
}
Это Database
класс:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Database {
private Connection con;
public void connect() throws Exception{
if(con != null) return;
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
throw new Exception("No database");
}
String connectionURL = "jdbc:mysql://localhost:3306/Peoples";
con = DriverManager.getConnection(connectionURL, "root", "milos23");
}
public void close(){
if(con != null){
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
Ответы:
URL вашего подключения должен выглядеть следующим образом:
Это отключит SSL, а также подавит ошибки SSL.
источник
jdbc:mysql://localhost:3306/Peoples?autoReconnect=true&useSSL=false
Я использовал & amp; вместо &Как насчет использования SSL, но при отключении проверки сервера (например, в режиме разработки на вашем компьютере):
источник
Упомяните
url
подобное:Но в конфигурации XML, когда вы упоминаете
&
знак, IDE показывает ниже ошибку:И тогда вы должны явно использовать
&
вместо ,&
чтобы определить , как&
наxml
дальнейшем вxml
вас , чтобы дать URL в конфигурации XML , как это:источник
Альтернативный метод будет:
источник
Я также нашел это предупреждение, затем исправил его с помощью суффикса SSL = false к строке подключения, как в примере кода.
Пример:
источник
Значения по умолчанию для инициирования соединения с сервером MySQL были изменены в недавнем прошлом, и (из быстрого просмотра самых популярных вопросов и ответов о переполнении стека) новые значения вызывают много путаницы. Хуже всего то, что стандартный совет, по-видимому, заключается в том, чтобы вообще отключить SSL, что создает некоторую катастрофу.
Теперь, если ваше соединение действительно не открыто для сети (только на локальном хосте) или вы работаете в непроизводственной среде без реальных данных, тогда будьте уверены: отключение SSL не повредит включением этой опции
useSSL=false
.Для всех остальных требуется следующий набор параметров для работы SSL с сертификатом и проверкой хоста:
В качестве дополнительного бонуса, поскольку вы уже играете с опциями, также просто отключить слабые протоколы SSL:
пример
Так что в качестве рабочего примера вам необходимо выполнить следующие широкие шаги:
Во-первых, убедитесь, что у вас есть действительный сертификат, сгенерированный для хоста сервера MySQL, и что сертификат CA установлен на хосте клиента (если вы используете самоподписанный, вам, вероятно, потребуется сделать это вручную, но для популярные общественные центры сертификации, это уже будет там).
Затем убедитесь, что хранилище ключей Java содержит все сертификаты CA. В Debian / Ubuntu это достигается запуском:
Затем, наконец, обновите строку подключения, включив в нее все обязательные параметры, которые в Debian / Ubuntu были бы похожи (адаптируйте при необходимости):
Ссылка: https://beansandanicechianti.blogspot.com/2019/11/mysql-ssl-configuration.html
источник
вам нужно использовать свой путь mysql следующим образом:
источник
Это было хорошо для меня:
источник
Используйте это, чтобы решить проблему в улье при установлении соединения с MySQL
источник
jdbc:mysql://localhost/metastore?useSSL=false&createDatabaseIfNotExist=true
. Без и работает нормально.Я использую это свойство для спящего режима в конфигурации XML
без - serverTimezone = UTC - это не работает
источник
Решение Чтобы исправить это, добавьте useSSL = false в конце строки подключения MySQL:
ех.
application.properties
источник данных mysql
источник
новые версии mysql-connector устанавливают SSL-соединение по умолчанию ... для его решения:
Загрузите более старую версию mysql-connector, такую как mysql-connector-java-5.0.8.zip
, , или . , Скачайте OpenSSL для Windows и следуйте инструкциям по его установке
источник
Поскольку я в настоящее время нахожусь в режиме разработки, я установил для useSSL значение «Нет» не в tomcat, а в конфигурациях сервера mysql. Пошел в Управление настройками доступа \ Управление подключениями к серверу из рабочей среды -> Выбрал мое соединение. Внутри вкладки подключения перешли на вкладку SSL и отключили настройки. Работал на меня.
источник