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

Persistencia da classe Conta

Bom dia. Estou tendo o seguinte report de erro:

Caused by: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: NO)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3609)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3541)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:943)
    at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:4113)
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1308)
    at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2336)
    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2369)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2153)
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:792)
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:381)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:305)
    at org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:38).

Segue minhas versoes:

MySql 8.0.12
Hibernate 5.3.5.Final
JSE 1.8
Windows 10

Tive problemas ao baixar o driver do SQL uma vez que no link disponibilizado pelo professor somente continha versoes para unix like e nao para windows.
Neste cenário, fui executar a classe TesteConta e obtive erro relacionado ao driver. Daí, baixei um driver (mysql-connector-java-5.1.18-bin.jar) e joguei no lib. Adicionei-o no build path. Contudo, agora tenho este erro (reportado acima).
O usuario é "root" e a senha e "admin". 
Abaixo o arquivo persistence.xml ( no valor da senha, testei com "admin" e com senha vazia)


<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" version="2.0">
    <!-- unidade de persistencia com o nome financas -->
    <persistence-unit name="financas">
        <!-- Implementação do JPA, no nosso caso Hibernate -->
        <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
        <!-- Aqui são listadas todas as entidades -->
        <class>br.com.caelum.financas.modelo.Conta</class>
        <properties><!-- Propriedades JDBC -->
            <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
            <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/financas"/>
            <property name="javax.persistence.jdbc.user" value="root"/>
            <property name="javax.persistence.jdbc.password" value=""/>
            <!-- Configurações específicas do Hibernate -->
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect"/>
            <property name="hibernate.hbm2ddl.auto" value="update"/>
            <property name="hibernate.show_sql" value="true"/>
            <property name="hibernate.format_sql" value="true"/>
        </properties>
    </persistence-unit>
</persistence>

Meus questionamentos, além desta questao: 1) como inicializo o mysql ( nao instalei como servico do windows); 2) como deixo o login sem senha?

5 respostas

Fala ai Eduardo, de boa?

Você pode colocar no persistence.xml a senha, imagino que isso já deva resolver seu problema.

Matheus, como descrevi acima, testei com a senha configurada: "admin" e sem a mesma. Nao deu.

Um outro ponto que acabei de reparar que você está usando a versão 8 do mysql, nossos cursos estão dando suporte pra 5.7, consegue fazer essa troca pra gente ver se o problema persiste ?

Irei fazer isto mas nao creio que seja esta a questao, face o erro:

java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: NO)

Mas vou tentar aqui.

solução!

Oi Eduardo!

Eu imagino que vc inicializa o mysql através de um executável que deve estar na pasta de instalação.

Posso tentar simular o seu problema, tem como me enviar o link do download do mysql (só para garantir que estou usando a mesma versão)?

Além disso, vc precisa usar o driver compatível com sua versão do mysql. Vc pode baixar o driver nesse link:

https://dev.mysql.com/downloads/connector/j/

Caso queira testar com a versão 5 do mysql server compatível com o driver do curso, use o download abaixo:

https://dev.mysql.com/downloads/mysql/5.7.html#downloads

Para o curso não tem diferença usar 5.x ou 8.x.

abs