5
respostas

Problema de conexão entre tomcat e mysql

Não consigo inicializar a aplicação loja. Pelo apt-get apenas consegui instalar o tomcat9, e a versão do mysql não pedia a senha inicial. Alterei a senha do root através do comando dentro do mysql, criei o banco de dados projeto_jpa, criei o arquivo setenv.sh conforme orientado e ainda assim não é feita a conexão.

Abaixo alguns trechos do log de erro:

05-Oct-2020 00:52:25.227 INFO [main] org.apache.catalina.core.ApplicationContext.log Spring WebApplicationInitializers detected on classpath: [br.com.caelum.Inicializador@6fd07a56] 05-Oct-2020 00:52:25.308 INFO [main] org.apache.catalina.core.ApplicationContext.log Initializing Spring root WebApplicationContext 05-Oct-2020 00:52:29.277 SEVERE [main] org.apache.catalina.core.StandardContext.listenerStart Exception sending context initialized event to listener instance of class [org.springframework.web.context.ContextLoaderListener] org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'criadorDeProdutos': Invocation of init method failed; nested exception is org.springframework.transaction.CannotCreateTransactionException: Could not open JPA EntityManager for transaction; nested exception is javax.persistence.PersistenceException: org.hibernate.exception.JDBCConnectionException: Could not open connection

Caused by: org.springframework.transaction.CannotCreateTransactionException: Could not open JPA EntityManager for transaction; nested exception is javax.persistence.PersistenceException: org.hibernate.exception.JDBCConnectionException: Could not open connection

Caused by: javax.persistence.PersistenceException: org.hibernate.exception.JDBCConnectionException: Could not open connection

Caused by: org.hibernate.exception.JDBCConnectionException: Could not open connection

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server

5 respostas

Olá Matheus, tudo bem? Primeiramente sobre a "versão do mysql não pedir a senha de root" na instalação isso é normal, isso acontece porque nas ultimas versões lançadas do MySQL 5 isso foi implementado, e então é necessário fazer a alteração internamente depois que a instalação estiver completa.

Sobre a conexão não está funcionando: Qual é a versão do MySQL que você está utilizando? E qual foi o nome do banco de dados que você criou dentro do MySQL? Porque se você criou o banco de dados com o nome alura_aws como o aparece no vídeo não deve funcionar, porque por algum motivo o instrutor disponibilizou aplicação .war configurada para acessar um banco de dados com o nome de projeto_jpa, então você poderia criar um banco de dados com esse nome e depois tentar novamente?

E fala pra gente o resultado!

Olá, Jonilson! Eu criei os dois bancos, conforme ilustrado abaixo. Seguem as versões do mysql e tomcat instalados. Criei uma máquina ec2 do zero e refiz o procedimento todo, e o erro persiste.

mysql Ver 8.0.21-0ubuntu0.20.04.4 for Linux on x86_64 ((Ubuntu))

mysql> show databases; +--------------------+ | Database | +--------------------+ | alura_aws | | information_schema | | mysql | | performance_schema | | projeto_jpa | | sys | +--------------------+

Server version: Apache Tomcat/9.0.31 (Ubuntu) Server built: Feb 24 2020 22:37:00 UTC Server number: 9.0.31.0 OS Name: Linux OS Version: 5.4.0-1024-aws Architecture: amd64 JVM Version: 1.8.0_265-8u265-b01-0ubuntu2~20.04-b01 JVM Vendor: Private Build

Obrigado.

O problema é a versão do MySQL, no seu caso você usou a o MySQL na versão 8.0.21, porém para funcionar é preciso que você use a versão 5.7, tenta usando essa versão e fala se deu certo!

Encontrei o problema. Durante a criação da instância EC2, eu selecionei o Ubuntu 20, e nele não há compatibilidade com o mysql 5.7, por isso ele nem aparece nas policies.

Recriei a instância como Ubuntu 18, e aí tudo funcionou igual ao instrutor, até aqui.

Fica a dica caso mais alguém passe por isso.

Valeu!

Show de bola sua dica Matheus, eu também não tinha testado esse cenário até porque utilizo o Ubuntu na minha máquina de trabalho! Muito legal mesmo essa dica, tenho certeza que vai ajudar muitos alunos! Sendo assim você poderia marcar sua resposta como solução desse tópico assim caso alguém precise vai poder encontrar mais facilmente!