Solucionado (ver solução)
Solucionado
(ver solução)
13
respostas

[Dúvida] Erro ao conectar no banco de dados MySQL

Olá pessoal. Estou tentando conectar o meu projeto com o banco de dados MySQL que já tenho configurado na minha máquima. Por algum motivo não estou conseguindo estabelecer a conexão devido ao erro:

13 respostas

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

O arquivo pom.xml está assim:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.erdev</groupId>
    <artifactId>loja</artifactId>
    <version>0.1</version>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <release>11</release>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <dependencies>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>5.6.15.Final</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.32</version>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.24</version>
        </dependency>
    </dependencies>

</project>

E o persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.2"
    xmlns="http://xmlns.jcp.org/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd">

    <persistence-unit name="loja" transaction-type="RESOURCE_LOCAL">
        <properties>
            <property name="javax.persistence.jdbc.driver" value="com.mysql.cj.jdbc.Driver"/>
            <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/loja?useSSL=false&amp;serverTimeZone=UTC"/>
            <property name="javax.persistence.user" value="root" />
            <property name="javax.persistence.password" value="root" />

            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL8Dialect"/>
            <property name="hibernate.show.sql" value="true"/>
            <property name="hibernate.hbm2ddl.auto" value="update"/>
        </properties>
    </persistence-unit>

</persistence>

Com o h2 funciona normalmente, mas com o MySQL estou tendo esse problema...

Oi Luis!

No último print da exception aparece o erro: Access denied for user 'oedur'@'localhost' (using password: NO)

O usuário/senha do mysql passado no persistence.xml está incorreto.

Olá professor! Na configuração do mysql, eu não adicionei esse usuário oedur... Existe alguma forma de saber a origem dele?

Posta aqui o código da sua classe CadastroDeProduto

package com.erdev.loja.testes;

import java.math.BigDecimal;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

import com.erdev.loja.model.Produto;

public class CadastroDeProduto {

    public static void main(String[] args) {

        Produto celular = new Produto();
        celular.setNome("Galaxy S23");
        celular.setDescricao("Muito Legal");
        celular.setPreco(new BigDecimal("3000"));

        EntityManagerFactory factory = Persistence.createEntityManagerFactory("loja");
        EntityManager manager = factory.createEntityManager();

        manager.getTransaction().begin();
        manager.persist(celular);
        manager.getTransaction().commit();
        manager.close();

    }

}

Tudo certo. Ele vai pegar o usuário e senha do persistence.xml mesmo. Confere se o persistence.xml está no src/main/java/resources/META-INF.

Verifica também no menu superior Project se a opção Build project Automatically está marcada.

Está tudo certo, e mesmo assim continua dando o mesmo erro... A impressão é que ele não está olhando para os properties user e password informados no persistence.

Eu criei um novo usuário na base, e passei ele como parâmetro na URL de conexão... Tem algum problema em utilizar essa abordagem?

solução!

Pois é, muito estranho isso. Pode passar pela url então.