Java.SQL.SQLException: 사용자 Root@Localhost에 대한 액세스가 거부되었습니다.

Sheeraz Gul 2024년2월15일
Java.SQL.SQLException: 사용자 Root@Localhost에 대한 액세스가 거부되었습니다.

이 튜토리얼은 Java에서 java.sql.SQLException: Access denied for user 'root'@'localhost' 오류를 해결하는 방법을 보여줍니다.

Java에서 java.sql.SQLException: 사용자 'root'@'localhost'(암호 사용: YES)에 대한 액세스가 거부되었습니다. 수정

이 오류는 새 버전 또는 이전 버전의 MySQL을 제거하고 설치하려고 할 때 발생합니다. MySQL을 제거할 때 MySQL 제거 프로그램 마법사가 전체 정리를 수행하지 않기 때문에 오류가 발생합니다.

남은 정크를 수동으로 청소하면 이 문제가 해결됩니다. 발생하는 오류는 아래와 같습니다.

SQLException

이 오류를 해결하려면 몇 가지 간단한 단계를 따르십시오.

  • 먼저 제거 마법사를 사용하여 MySQL 서버를 제거합니다.
  • 설치 폴더는 여전히 존재합니다. 폴더에서 모든 것을 삭제하십시오. 예를 들어 폴더는 다음과 같습니다.
    C:\Program Files (x86)\MySQL
    
  • 이제 MySQL 서버를 다시 설치하십시오.

위의 프로세스는 이전에 저장된 암호 및 이 오류를 일으키는 기타 정보를 삭제합니다.

이 오류에는 몇 가지 다른 이유도 있습니다. 예를 들어 Java 및 MySQL을 사용하여 처음부터 새 데이터베이스를 만들면 동일한 오류가 발생할 수 있습니다.

예를 참조하십시오:

package delftstack;

import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class Example {
  public static void main(String[] args) throws ClassNotFoundException, SQLException {
    try {
      Connection Database_Connection = (Connection) DriverManager.getConnection(
          "jdbc:mysql://localhost/?user=root&password=rootpassword");
      Statement Demo_Statement = (Statement) Database_Connection.createStatement();
      int result = Demo_Statement.executeUpdate("CREATE New Database");
    }

    catch (Exception e) {
      e.printStackTrace();
    }
  }
}

위의 코드는 동일한 오류를 발생시킬 것이며 오류를 발생시키는 이유는 새 데이터베이스를 제대로 생성하지 않았기 때문입니다. 위 코드에 대한 솔루션은 다음과 같습니다.

package delftstack;

import com.mysql.jdbc.PreparedStatement;
import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class Example {
  public static void main(String[] args) throws ClassNotFoundException, SQLException {
    try {
      Connection Database_Connection =
          DriverManager.getConnection("jdbc:mysql://localhost/?user=root&password=rootpassword");
      PreparedStatement Demo_Statement =
          (PreparedStatement) Database_Connection.prepareStatement("CREATE DATABASE databasename");
      int result = Demo_Statement.executeUpdate("CREATE New Database");
    }

    catch (Exception e) {
      e.printStackTrace();
    }
  }
}

이 코드는 오류 없이 새 데이터베이스를 성공적으로 생성합니다.

작가: Sheeraz Gul
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

관련 문장 - Java Exception