2

I'm having troubles with my project , it involves JDBC and Mysql connection .

When I do the following :

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!");
    }

}

When I try to connect with the above code , the connection doesn't work ,here is the 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)

How can I fix it ?

Regards

7
  • 4
    You sure you do not have a password? Commented Aug 15, 2012 at 15:17
  • It seems as if your password is wrong. Commented Aug 15, 2012 at 15:18
  • Can you try to use these credentials to log into your mysql db manually? Commented Aug 15, 2012 at 15:19
  • @jsn: No I don't .How can I connect without a password ? Commented Aug 15, 2012 at 15:19
  • @Ron it seems like you do actually have a password for the root account. Did you just install MySQL or something? Are you on a shared host? Commented Aug 15, 2012 at 15:23

5 Answers 5

3

I encounter the same error, this is how I fixed it:

I used DriverManager class like this:

    Class.forName("com.mysql.jdbc.Driver");
    Connection Hello = DriverManager.getConnection("jdbc:mysql://YOUR-URL-HERE", "USERNAME", "PASSWORD");

And that's it. Also, when selecting a table, remenber to put the DB name first, like:

    "DB_NAME.TABLE_NAME".
Sign up to request clarification or add additional context in comments.

2 Comments

Can someone please give an example of this part: YOUR-URL-HERE
Don't worry, found it. First paramater: "jdbc:mysql://127.0.0.1:3306/myDBName"
2

TO check if mysql has a password, go to the directory where you installed mysql, and in the bin directory try to bring up mysql prompt using

./mysql –u root mysql

If the login goes through without any problem, it means no password is set.
You can use mysqadmin script to set/reset password.

./mysqladmin –u root password "password string"

Comments

2

Looks like you've only just installed mysql. Run mysql_secure_installation. It will prompt you for a root password, among other things.

Comments

1

I had the same problem. You need to set a password for the user. Go to the mysql console .

$ mysqladmin -u root password myFirstpassword

Then change your password in the java program

Comments

0

Either the username/password is wrong or the user is missing privileges to access the schema/table. Grant privileges using

GRANT ALL PRIVILEGES ON . TO 'root'@'localhost' WITH GRANT OPTION

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.