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

Access denied for user 'root'@'localhost' (using password: YES)

Olá pessoal, eu estou com problemas ao executar a classe main TesteCriaTabelas ocorreu esse erro abaixo, alguém pode me auxiliar? Eu coloco a senha nos locais correto na class persistence.xml e mesmo assim exibe esse erro ao compilar.

Caused by: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) 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.ConnectionImpl.createNewIO(ConnectionImpl.java:836) at com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:456) at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246) at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:197) at org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:38) ... 29 more

7 respostas

Olá Jackson, tudo bem com você?

Você criou a pasta META-INF dentro da pasta resources e adicionou o persistence.xml?

Pelo erro pode ter sido algum problema com o caminho do arquivo, caso você tenha feito você pode dar uma checada no persistence para ver se o Provider esta realmente:

        <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>

E não apenas HibernatePersistence

Qualquer coisa estou a disposição :)

Abraços e Bons Estudos!

Opa Jackson, vi que você mudou a pergunta

Neste caso é porque no seu persistence.xml provavelmente a senha do banco de dados está incorreta, você pode checar tentando se conectar com a senha que colocou e ver se está tudo funcionando corretamente ou se foi apenas algum erro de digitação :)

Abraços :)

Eu percebi o erro da criação da pasta META-INF e do arquivo xml no local errado por esse motivo eu editei o o post, eu já realizei esses procedimento de adicionar o Provider nessa linha, mesmo assim o erro permanece. org.hibernate.jpa.HibernatePersistenceProvider

ERRO:

Caused by: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) 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.ConnectionImpl.createNewIO(ConnectionImpl.java:836) at com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:456) at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246) at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:197) at org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:38) ... 29 more

Eu posteriormente irei alterar a minha senha, eu irei postar o a classe com a senha que coloquei no banco como teste apos instalar ele novamente e tentar compilar sem sucesso.

<persistence-unit name="contas">
    <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
    <class>br.com.alura.jpa.modelo.Conta</class>

    <properties>
        <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
        <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/alura_jpa" />
        <property name="javax.persistence.jdbc.user" value="root" />
        <property name="javax.persistence.jdbc.password" value="123456" />

        <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
        <property name="hibernate.show_sql" value="true" />
        <property name="hibernate.format_sql" value="true" />

        <property name="hibernate.hbm2ddl.auto" value="update" />

    </properties>
</persistence-unit>

solução!

Eu encontrei a solução para quem estiver com o mesmo problema segue a solução:

Eu modifiquei a fabrica da classe TesteCriaTabelas:

EntityManagerFactory emf = Persistence.createEntityManagerFactory("contas");


Criei e importei annotation na classe Conta a classe de modelo e gerei o valor para o id ser auto_incremento:

@Entity

public class Conta {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)

[FINALIZANDO]

Devido existir 2 SGBD instalado no meu notebook, ao instalar o SGBD MariaDB ele solicitou para alterar a porta TCP, por padrão vem a 3306 instalada, eu alterei para a seguinte 3307 e faltou inserir na linha de url do banco no localhost a porta TCP no arquivo persistence.xml

< property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3307/alura_jpa" />

Valeu mano tava tendo o mesmo problema e inclusive coloquei a mesma porta 3307 kkkkk

De nada Arthur!! Bons estuddos!