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

Exception Persistência com Hibernate

Olá boa noite, eu não consigo rodar o PopulaBanco.java para popula ro banco de dados MYSQL, ele lança essa exception, eu estou usando o mysql versao: 5.7:

java.sql.SQLException: Access denied for user 'root'@'localhost'
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4096)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4028)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:919)
    at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1694)
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1244)
    at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2412)
    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2445)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2230)
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:813)
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.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.jdbc.Util.handleNewInstance(Util.java:411)
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:399)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:334)
    at java.sql.DriverManager.getConnection(DriverManager.java:664)
    at java.sql.DriverManager.getConnection(DriverManager.java:208)
    at org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl.getConnection(DriverManagerConnectionProviderImpl.java:193)
    at org.hibernate.tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.prepare(SuppliedConnectionProviderConnectionHelper.java:51)
    at org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(SchemaUpdate.java:194)
    at org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(SchemaUpdate.java:178)
    at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:503)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1750)
    at org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:94)
    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:905)
    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:890)
    at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:57)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:63)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)
    at br.com.caelum.livraria.dao.JPAUtil.<clinit>(JPAUtil.java:10)
    at br.com.caelum.livraria.dao.PopulaBanco.main(PopulaBanco.java:17)
6 respostas

Olá Cleusa

Alguem deve ter mudado o login/senha padrao do mysql. O erro nao está no seu codigo hibernate, e sim na configuração do login/senha do mysql!

Aqui tem um passo a passo pra voce mudar a senha de root do servidor no caso de voce ter acesso ao terminal dele mas nao ao mysql

https://dev.mysql.com/doc/mysql-windows-excerpt/5.7/en/resetting-permissions-windows.html

Eu tentei já tentei na documentacao do mysql , e não obtive resultado.

Olá Cleusa tudo bem?

Como o Paulo disse acima, o seu problema é de divergência do usuario e/ou senha do mysql! pode ser que também, seu arquivo de configuração "persistence.xml", que esta com alguma informação errada! Sendo assim, verifica também essa questão!

Abraços

E você poe pra gente o que tentou da documentação do mysql e qual foi a saída/mensagem de erro?

No mysql quando seleciono a tabela mysql para alterar o password ele não tem mais essa coluna, agora nessa versao é a coluna é authentication_string, no arquivo "persistence.xml" eu coloquei o usuario e a senha mesmo assim ele não popula o banco ele da essa exception.os comandos que eu utilizei para alterar a senha foi :

ALTER USER 'root'@'localhost' IDENTIFIED BY 'nova.senha';

solução!

Consegui, gente ,kk depois de muitas horas, foi so criar um novo usuario e dar privilegios a ele, eis os comandos utilizados:

CREATE USER 'novousuario'@'localhost' IDENTIFIED BY 'senha'; GRANT ALL PRIVILEGES ON * . * TO 'novousuario'@'localhost';