java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: NO)
Je vais avoir des problèmes avec mon projet , il implique JDBC
et Mysql
connexion .
Quand je ne les suivants :
private Statement m_statement = null; //statement
private Connection m_connection = null; // connection
/**
* Constructor #1 of the Database class
* @throws ClassNotFoundException
*/
public Database() throws ClassNotFoundException
{
try
{
Class.forName("com.mysql.jdbc.Driver");
MysqlDataSource ds = new MysqlConnectionPoolDataSource();
ds.setServerName("localhost");
ds.setPort(3306);
ds.setUser("root");
ds.setPassword("");
this.m_connection = ds.getConnection();
this.m_statement = this.m_connection.createStatement();
}
catch (SQLException s)
{
System.out.println("SQL statement is not executed! 2!");
}
}
Quand j'essaie de me connecter avec le code ci-dessus , la connexion ne fonctionne pas ,voici le stacktrace :
java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: NO)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4074)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4006)
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:2397)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2430)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2215)
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(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:399)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:334)
at com.mysql.jdbc.jdbc2.optional.MysqlDataSource.getConnection(MysqlDataSource.java:443)
at com.mysql.jdbc.jdbc2.optional.MysqlDataSource.getConnection(MysqlDataSource.java:141)
at com.mysql.jdbc.jdbc2.optional.MysqlDataSource.getConnection(MysqlDataSource.java:111)
at db.Database.<init>(Database.java:99)
at controller.LoginPage.doGet(LoginPage.java:61)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Comment puis-je résoudre ce problème ?
Ce qui concerne
Vous assurer que vous n'avez pas de mot de passe?
Il me semble que si votre mot de passe est erroné.
Pouvez-vous essayer d'utiliser ces informations d'identification pour vous connecter à votre base mysql manuellement?
Non, je ne .Comment puis-je me connecter sans mot de passe ?
il semble que vous n'avez en fait avoir un mot de passe pour le compte root. Vous venez de vous installer MySQL ou quelque chose? Êtes-vous sur un ordinateur hôte partagé?
Il me semble que si votre mot de passe est erroné.
Pouvez-vous essayer d'utiliser ces informations d'identification pour vous connecter à votre base mysql manuellement?
Non, je ne .Comment puis-je me connecter sans mot de passe ?
il semble que vous n'avez en fait avoir un mot de passe pour le compte root. Vous venez de vous installer MySQL ou quelque chose? Êtes-vous sur un ordinateur hôte partagé?
OriginalL'auteur JAN | 2012-08-15
Vous devez vous connecter pour publier un commentaire.
Je rencontre la même erreur, c'est la façon dont je l'ai corrigé:
J'ai utilisé de la classe DriverManager comme ceci:
Et c'est tout. Aussi, lors de la sélection d'une table, en souvenir de mettre le nom DB d'abord, comme:
Ne vous inquiétez pas, trouvé. Première paramater: "jdbc:mysql://127.0.0.1:3306/myDBName"
OriginalL'auteur armando
POUR vérifier si mysql a un mot de passe, allez dans le répertoire où vous avez installé mysql, et dans le répertoire bin essayer de mettre en place invite mysql à l'aide de
./mysql –u root mysql
Si la connexion passe sans aucun problème, cela signifie aucun mot de passe n'est défini.
Vous pouvez utiliser mysqadmin script pour régler/réinitialiser le mot de passe.
./la commande mysqladmin –u root password "chaîne de mot de passe"
OriginalL'auteur user572964
Semble que vous avez tout juste installé mysql. Exécuter
mysql_secure_installation
. Il vous invite à entrer un mot de passe root, entre autres choses.OriginalL'auteur artbristol
J'ai eu le même problème. Vous devez définir un mot de passe pour l'utilisateur. Accédez à la console mysql .
Ensuite modifier votre mot de passe dans le programme java
OriginalL'auteur Janaky Murthy
Le nom d'utilisateur/mot de passe est incorrect ou l'utilisateur est absent de privilèges pour accéder au schéma/tableau. Accorder des privilèges à l'aide de
ACCORDER TOUS LES PRIVILÈGES SUR . À 'root'@'localhost' with GRANT OPTION
OriginalL'auteur Rohan