Friday, April 15, 2011

The full error message may be :

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


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

When we try to connect to a database through JDBC with wrong username or password - we see this error message.

See the sample code below:

Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/DatabaseName","root","mypassword");

In the above code, root is the username and mypassword is the password. If the username root or the password is not correct we see this error message "java.sql.SQLException: Access denied for user 'root'@'localhost' (using password : YES)".

If the password is not provided (blank password) as the code below but the user has password we see the error message "java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: NO)"

Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/DatabaseName","root","");
If you are using JPA with eclipselink/toplink or other, correct the username and password in the persistence.xml file of your project.

persistence.xml may look like below:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="" xmlns:xsi="" xsi:schemaLocation="">
  <persistence-unit name="MyPersistenceUnitPU" transaction-type="RESOURCE_LOCAL">
      <property name="toplink.jdbc.user" value="root"/>
      <property name="toplink.jdbc.password" value="mypassword"/>
      <property name="toplink.jdbc.url" value="jdbc:mysql://localhost:3306/DatabaseName"/>
      <property name="toplink.jdbc.driver" value="com.mysql.jdbc.Driver"/>

If the above solutions do not work for you. Please comment below giving your code. I'll try to respond.


  1. oracle.toplink.essentials.PersistenceProvider


  2. This comment has been removed by the author.