Próbuję nawiązać połączenie SSL z aplikacji java na serwer mysql. Poniżej znajdują się szczegóły konfiguracji.

  • java 8
  • wersja serwera mysql: 5.7.28
  • mysql-connector-java-8.0.12
  • ciąg połączenia: jdbc: mysql: // localhost: 3306 / carbon_mysql? autoReconnect = true & useSSL = true & requireSSL = true

Ale kiedy próbuję połączyć się przez aplikację java, generowany jest następujący wyjątek.

Caused by: com.mysql.cj.exceptions.WrongArgumentException: Malformed database URL, failed to parse the connection string near '=true&requireSSL=true'.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:59)
at com.mysql.cj.conf.ConnectionUrlParser.processKeyValuePattern(ConnectionUrlParser.java:524)
at com.mysql.cj.conf.ConnectionUrlParser.parseQuerySection(ConnectionUrlParser.java:496)
at com.mysql.cj.conf.ConnectionUrlParser.getProperties(ConnectionUrlParser.java:621)
at com.mysql.cj.conf.ConnectionUrl.collectProperties(ConnectionUrl.java:302)
at com.mysql.cj.conf.ConnectionUrl.<init>(ConnectionUrl.java:287)
at com.mysql.cj.conf.url.SingleConnectionUrl.<init>(SingleConnectionUrl.java:47)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.mysql.cj.util.Util.handleNewInstance(Util.java:210)
at com.mysql.cj.util.Util.getInstance(Util.java:185)
at com.mysql.cj.util.Util.getInstance(Util.java:192)
at com.mysql.cj.conf.ConnectionUrl.getConnectionUrlInstance(ConnectionUrl.java:189)
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:201)
... 83 more
0
Dinelka Gunasekara 20 listopad 2019, 14:56
Sprawdź, czy adres URL bazy danych jest poprawny
 – 
Pramodya Mendis
20 listopad 2019, 15:02
Co się stanie, gdy zmienisz adres URL JDBC na jdbc:mysql://localhost:3306/carbon_mysql?autoReconnect=true&amp;useSSL=true&amp;requireSSL=true, aby był zakodowany?
 – 
Gimby
20 listopad 2019, 15:15
1
Opublikuj aktualny kod.
 – 
user207421
20 listopad 2019, 15:30

1 odpowiedź

Spróbuj zmienić adres URL połączenia na

jdbc: mysql: // localhost: 3306 / carbon_mysql? autoReconnect = true & useSSL = true & requireSSL = true & verifyServerCertificate = true

Musisz również upewnić się, że przyznałeś SSL w mysql. zaloguj się jako root na serwerze MySQL i uruchom zapytania podane poniżej:

GRANT USAGE ON *.* TO 'root'@'%' REQUIRE SSL; 
FLUSH PRIVILEGES;
0
Onkar Musale 20 listopad 2019, 15:06