Home >Java >javaTutorial >Why am I getting \'Access denied for user \'root\'@\'localhost\'\' error when trying to connect to my MySQL database?
MySQL Connection Issue: Access Denied for User 'root'@'localhost'
The code you provided is failing to connect to the database and is throwing a SQLException with the message "Access denied for user 'root'@'localhost' (using password: YES)". This issue indicates that the specified user does not have the necessary permissions to access the database.
Causes:
This exception can occur due to the following reasons:
Solution:
To resolve this issue, try the following steps:
Grant necessary privileges: Execute the following SQL statement to grant all privileges to the 'root' user on 'localhost':
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '%password%' WITH GRANT OPTION;
Replace %password% with the actual password of the 'root' user.
Example:
You have modified your code slightly to attempt creating a database while handling exceptions:
<code class="java">public static void main(String[] args) throws ClassNotFoundException, ServletException, SQLException { try { Connection conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/?user=root&password=rootpassword"); Statement s = (Statement) conn.createStatement(); int result = s.executeUpdate("CREATE DATABASE databasename"); } catch (Exception e) { e.printStackTrace(); } }</code>
However, the same exception occurs. In this case, ensure that the 'root' user has the necessary privileges to create a database. You can grant this privilege using the following SQL statement:
GRANT CREATE DATABASE ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
By following these steps, you should be able to establish a successful connection to the database and avoid the "Access denied" exception.
The above is the detailed content of Why am I getting \'Access denied for user \'root\'@\'localhost\'\' error when trying to connect to my MySQL database?. For more information, please follow other related articles on the PHP Chinese website!