5
respostas

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

Boa noite, quando vou rodar a classe TesteConta ocorre este erro:

ERROR: Access denied for user 'root'@'localhost' (using password: NO)
5 respostas

Oi Pablo, tudo bom?

Verifica pra mim se você tem um usuario root sem senha no seu mysql? Algo como:

mysql -u root

Se você não conseguir acessar, você pode criar um usuario sem senha ou configurar seu usuario e senha no arquivo persistence.xml

Abraço

Olá Paulo!

Desculpe a demora, bem o meu mysql loga com:

mysql -uroot -p

E o arquivo persistense está setado:

<property name="javax.persistence.jdbc.user" value="root" />
            <property name="javax.persistence.jdbc.password" value="" />

Aqui está o código do erro completo:

set 20, 2018 9:29:08 PM org.hibernate.jpa.internal.util.LogHelper logPersistenceUnitInformation
INFO: HHH000204: Processing PersistenceUnitInfo [
    name: financas
    ...]
set 20, 2018 9:29:08 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {5.3.6.Final}
set 20, 2018 9:29:08 PM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
    at org.hibernate.boot.spi.XmlMappingBinderAccess.<init>(XmlMappingBinderAccess.java:43)
    at org.hibernate.boot.MetadataSources.<init>(MetadataSources.java:86)
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:212)
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:174)
    at org.hibernate.jpa.boot.spi.Bootstrap.getEntityManagerFactoryBuilder(Bootstrap.java:76)
    at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilder(HibernatePersistenceProvider.java:171)
    at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:119)
    at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:61)
    at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:50)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:79)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)
    at br.com.caelum.financas.teste.Teste.main(Teste.java:24)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
    ... 12 more

Meu SO é o linux mint, porém em meu not também ocorreu o mesmo erro e ele é windows 10.

Você tem alguma luz? rsrs

Percebi algo interessante no linux, quando tento logar no mysql, sem estar logado como root no terminal ocorre esse erro:

pablo@pablo-desktop:~$ mysql -uroot -p
Enter password: 
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
pablo@pablo-desktop:~$ 

Porém quando logo no terminal como root passa liso:

pablo@pablo-desktop:~$ sudo su
root@pablo-desktop:/home/pablo# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.7.23-0ubuntu0.18.04.1 (Ubuntu)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

Não sei se isso pode influenciar, já que no windows também ocorre o mesmo erro.

Alguém?

Oi Pablo, perdão pela demora.

Temos dois cenários agora. O primeiro, no windows, possui o erro:

java.lang.ClassNotFoundException: javax.xml.bind.JAXBException

Qual versão do Java você está utilizando no windows? No java 9 esse pacote não vem mais por padrão, pode ser por isso que a classe não é encontrada.

Quanto ao cenário no linux, temos um caso famoso no mysql 5.7. Nessa versão não é mais recomendado o uso do root fora do su. O ideal é criar um usuario com mesmo nome do usuario do sistema operacional, assim você pode usar normalmente sem acessar como super user =)

Abraço