giannino1995 ha scritto:
Con IntelliJ le variabili d'ambiente non vanno impostate
Con gli IDE è ovviamente
diverso, non puoi fare paragoni. Normalmente gli IDE hanno già un loro Maven
embedded. E la locazione del JDK è determinata/scelta in maniera differente, per configurazione esplicita o anche più semplicemente perché è il JDK/runtime usato già per avviare l'IDE (es. Eclipse).
giannino1995 ha scritto:
A te escono fuori degli errori come a me oppure tutto liscio come l'olio?
Se io prendo il springboot-mybatis-demo originale del chapter-06 e gli faccio le seguenti modifiche (come già detto prima):
1) nel pom.xml metto
<mysql.version>8.0.21</mysql.version> dentro
<properties>
2) in application-prod.properties metto:
-- il driver
com.mysql.cj.jdbc.Driver
--
?serverTimezone=UTC nel url (perché io ho il server MySQL 8 )
-- la mia password di root (ovviamente)
--
spring.datasource.initialization-mode=always (perché altrimenti NON essendo embedded NON usa lo schema.sql)
3) lascio l'uso di
UserMapper nella classe di test (che è già così originalmente)
4) creo "a mano" il database test (l'applicazione NON lo crea)
Lanciando: mvn test -Dspring.profiles.active=prod
Ottengo:
[INFO] Results:
[INFO]
[INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
senza alcun errore/eccezione.
giannino1995 ha scritto:
Prompr di Windows: https://gofile.io/d/kYqum
In quel log in particolare si vede:
java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110) ~[mysql-connector-java-8.0.21.jar:8.0.21]
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) ~[mysql-connector-java-8.0.21.jar:8.0.21]
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-java-8.0.21.jar:8.0.21]
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:836) ~[mysql-connector-java-8.0.21.jar:8.0.21]
at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:456) ~[mysql-connector-java-8.0.21.jar:8.0.21]
Questo sembra più un problema di configurazione del MySQL sulla security. E probabilmente deriva anche dalle opzioni che hai scelto quando hai installato il MySQL.
Io in particolare avevo indicato all'installer di installare un "Standalone MySQL Server" e poi avevo marcato l'opzione "Use Strong Password Encryption for Authentication"
giannino1995 ha scritto:
IntelliJ: https://gofile.io/d/eLILM
In quel log si vede
Caused by: java.sql.SQLSyntaxErrorException: PROCEDURE test.identity does not exist
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:953)
at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:370)
Stai usando MySQL (si vede...)
E stai usando UserAnnotationMapper! Te l'ho già detto diverse volte: con MySQL NON puoi usare quel UserAnnotationMapper a causa del call identity() che è possibile su H2 ma non su MySQL.