java - Why do I get a "MySQLSyntaxErrorException:Access denied for user:" error? -
when run application have errors mentioned in stack trace.
com.mysql.jdbc.exceptions.jdbc4.mysqlsyntaxerrorexception: accès refusé pour l'utilisateur: ''@'@localhost'. base 'db_hajar'
(i using spring boot). can help?
here database class using:
package demo.entities; import java.io.serializable; import java.util.collection; import javax.persistence.entity; import javax.persistence.generatedvalue; import javax.persistence.generationtype; import javax.persistence.id; import javax.persistence.joincolumn; import javax.persistence.onetomany; @entity public class database implements serializable { @id @generatedvalue(strategy=generationtype.identity) private int id_database; private string database_name; @onetomany @joincolumn(name="id_entity") private collection<entities>entities; public int getid_database() { return id_database; } public void setid_database(int id_database) { this.id_database = id_database; } public string getdatabase_name() { return database_name; } public void setdatabase_name(string database_name) { this.database_name = database_name; } public database() { super(); // todo auto-generated constructor stub } public database(int id_database, string database_name) { super(); this.id_database = id_database; this.database_name = database_name; } @override public string tostring() { return "database [id_database=" + id_database + ", database_name=" + database_name + "]"; } } here entity's class:
package demo.entities; import java.io.serializable; import java.util.collection; import javax.persistence.entity; import javax.persistence.generatedvalue; import javax.persistence.generationtype; import javax.persistence.id; import javax.persistence.joincolumn; import javax.persistence.manytoone; import javax.persistence.onetomany; @entity public class entities implements serializable { @id @generatedvalue(strategy=generationtype.identity) private int id_entity; private string entity_name; @manytoone @joincolumn(name="id_database") private database database; public int getid_entity() { return id_entity; } public void setid_entity(int id_entity) { this.id_entity = id_entity; } public string getentity_name() { return entity_name; } public void setentity_name(string entity_name) { this.entity_name = entity_name; } public entities() { super(); // todo auto-generated constructor stub } public entities(int id_entity, string entity_name) { super(); this.id_entity = id_entity; this.entity_name = entity_name; } @override public string tostring() { return "entities [id_entity=" + id_entity + ", entity_name=" + entity_name + "]"; } } here application property settings:
# datasourcesettings: spring.datasource.url= jdbc:mysql://localhost:3306/db_hajar spring.datasource.username= root spring.datasource.password= spring.datasource.driverclassname= com.mysql.jdbc.driver # specifythe dbms # spring.jpa.database = mysql # show or not log each sqlquery spring.jpa.show-sql = true # hibernateddlauto (create, create-drop, update) spring.jpa.hibernate.ddl-auto = update # naming strategy spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.improvednamingstrategy spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.mysql5dialect the stack trace :
com.mysql.jdbc.exceptions.jdbc4.mysqlsyntaxerrorexception: accès refusé pour l'utilisateur: ''@'@localhost'. base 'db_hajar' @ sun.reflect.nativeconstructoraccessorimpl.newinstance0(native method) @ sun.reflect.nativeconstructoraccessorimpl.newinstance(unknown source) @ sun.reflect.delegatingconstructoraccessorimpl.newinstance(unknown source) @ java.lang.reflect.constructor.newinstance(unknown source) @ com.mysql.jdbc.util.handlenewinstance(util.java:377) @ com.mysql.jdbc.util.getinstance(util.java:360) @ com.mysql.jdbc.sqlerror.createsqlexception(sqlerror.java:978) @ com.mysql.jdbc.mysqlio.checkerrorpacket(mysqlio.java:3887) @ com.mysql.jdbc.mysqlio.checkerrorpacket(mysqlio.java:3823) @ com.mysql.jdbc.mysqlio.checkerrorpacket(mysqlio.java:870) @ com.mysql.jdbc.mysqlio.proceedhandshakewithpluggableauthentication(mysqlio.java:1659) @ com.mysql.jdbc.mysqlio.dohandshake(mysqlio.java:1206) @ com.mysql.jdbc.connectionimpl.coreconnect(connectionimpl.java:2234) @ com.mysql.jdbc.connectionimpl.connectonetryonly(connectionimpl.java:2265) @ com.mysql.jdbc.connectionimpl.createnewio(connectionimpl.java:2064) @ com.mysql.jdbc.connectionimpl.<init>(connectionimpl.java:790) @ com.mysql.jdbc.jdbc4connection.<init>(jdbc4connection.java:44) @ sun.reflect.nativeconstructoraccessorimpl.newinstance0(native method) @ sun.reflect.nativeconstructoraccessorimpl.newinstance(unknown source) @ sun.reflect.delegatingconstructoraccessorimpl.newinstance(unknown source) @ java.lang.reflect.constructor.newinstance(unknown source) @ com.mysql.jdbc.util.handlenewinstance(util.java:377) @ com.mysql.jdbc.connectionimpl.getinstance(connectionimpl.java:395) @ com.mysql.jdbc.nonregisteringdriver.connect(nonregisteringdriver.java:325) @ org.apache.tomcat.jdbc.pool.pooledconnection.connectusingdriver(pooledconnection.java:307) @ org.apache.tomcat.jdbc.pool.pooledconnection.connect(pooledconnection.java:200) @ org.apache.tomcat.jdbc.pool.connectionpool.createconnection(connectionpool.java:699) @ org.apache.tomcat.jdbc.pool.connectionpool.borrowconnection(connectionpool.java:633) @ org.apache.tomcat.jdbc.pool.connectionpool.init(connectionpool.java:484) @ org.apache.tomcat.jdbc.pool.connectionpool.<init>(connectionpool.java:142) @ org.apache.tomcat.jdbc.pool.datasourceproxy.pcreatepool(datasourceproxy.java:115) @ org.apache.tomcat.jdbc.pool.datasourceproxy.createpool(datasourceproxy.java:102) @ org.apache.tomcat.jdbc.pool.datasourceproxy.getconnection(datasourceproxy.java:126) @ org.hibernate.engine.jdbc.connections.internal.datasourceconnectionproviderimpl.getconnection(datasourceconnectionproviderimpl.java:139) @ org.hibernate.tool.hbm2ddl.suppliedconnectionproviderconnectionhelper.prepare(suppliedconnectionproviderconnectionhelper.java:51) @ org.hibernate.tool.hbm2ddl.schemaupdate.execute(schemaupdate.java:219) @ org.hibernate.tool.hbm2ddl.schemaupdate.execute(schemaupdate.java:203) @ org.hibernate.internal.sessionfactoryimpl.<init>(sessionfactoryimpl.java:522) @ org.hibernate.cfg.configuration.buildsessionfactory(configuration.java:1859) @ org.hibernate.jpa.boot.internal.entitymanagerfactorybuilderimpl$4.perform(entitymanagerfactorybuilderimpl.java:852) @ org.hibernate.jpa.boot.internal.entitymanagerfactorybuilderimpl$4.perform(entitymanagerfactorybuilderimpl.java:845) @ org.hibernate.boot.registry.classloading.internal.classloaderserviceimpl.withtccl(classloaderserviceimpl.java:398) @ org.hibernate.jpa.boot.internal.entitymanagerfactorybuilderimpl.build(entitymanagerfactorybuilderimpl.java:844) @ org.springframework.orm.jpa.vendor.springhibernatejpapersistenceprovider.createcontainerentitymanagerfactory(springhibernatejpapersistenceprovider.java:60) @ org.springframework.orm.jpa.localcontainerentitymanagerfactorybean.createnativeentitymanagerfactory(localcontainerentitymanagerfactorybean.java:343) @ org.springframework.orm.jpa.abstractentitymanagerfactorybean.afterpropertiesset(abstractentitymanagerfactorybean.java:318) @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.invokeinitmethods(abstractautowirecapablebeanfactory.java:1633) @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.initializebean(abstractautowirecapablebeanfactory.java:1570) @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.docreatebean(abstractautowirecapablebeanfactory.java:539) @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.createbean(abstractautowirecapablebeanfactory.java:476) @ org.springframework.beans.factory.support.abstractbeanfactory$1.getobject(abstractbeanfactory.java:303) @ org.springframework.beans.factory.support.defaultsingletonbeanregistry.getsingleton(defaultsingletonbeanregistry.java:230) @ org.springframework.beans.factory.support.abstractbeanfactory.dogetbean(abstractbeanfactory.java:299) @ org.springframework.beans.factory.support.abstractbeanfactory.getbean(abstractbeanfactory.java:194) @ org.springframework.context.support.abstractapplicationcontext.getbean(abstractapplicationcontext.java:956) @ org.springframework.context.support.abstractapplicationcontext.finishbeanfactoryinitialization(abstractapplicationcontext.java:747) @ org.springframework.context.support.abstractapplicationcontext.refresh(abstractapplicationcontext.java:480) @ org.springframework.boot.context.embedded.embeddedwebapplicationcontext.refresh(embeddedwebapplicationcontext.java:118) @ org.springframework.boot.springapplication.refresh(springapplication.java:686) @ org.springframework.boot.springapplication.run(springapplication.java:320) @ org.springframework.boot.springapplication.run(springapplication.java:957) @ org.springframework.boot.springapplication.run(springapplication.java:946) @ demo.demojpaapplication.main(demojpaapplication.java:10)
you question sort-a-related mysql. need past java error stack trace. however, since had experience java have learned how read of stack trace errors. read bottom up, top lines real answer.
based on nugget:
the top message: "com.mysql.jdbc.exceptions.jdbc4.mysqlsyntaxerrorexception: accès refusé pour l'utilisateur: ''@'@localhost'. base 'db_hajar'"...
translate french: "refused user". pretty answer: database or table called "db_hajar" not have search or query permission. pretty sure not code problem, database or table permissions in mysql.
you need mysql root, , grant access specific user. see: https://dev.mysql.com/doc/refman/5.5/en/privilege-system.html
on side: hope machine not have internet access or has firewall in place (blocking port 3306), have mysql running root level credentials , no password in code. yikes! recommend set root password (do not use queries), create user , password, , give pretty full access database or table in question , supply credentials in java program. once things working, avoid putting static credentials in code, instead learn how work java using certificates or credential management system securely holds credentials , can retrieved when needing authenticate.
hope helps!
Comments
Post a Comment