HOWTO · Java
Java.SQL.SQLException: 사용자 Root@Localhost에 대한 액세스가 거부되었습니다.
이 튜토리얼은 Java에서 java.sql.sqlexception: access denied for user root@localhost 오류를 해결하는 방법을 보여줍니다.
이 튜토리얼은 Java에서 java.sql.SQLException: Access denied for user 'root'@'localhost' 오류를 해결하는 방법을 보여줍니다.
Java에서 java.sql.SQLException: 사용자 'root'@'localhost'(암호 사용: YES)에 대한 액세스가 거부되었습니다. 수정
이 오류는 새 버전 또는 이전 버전의 MySQL을 제거하고 설치하려고 할 때 발생합니다. MySQL을 제거할 때 MySQL 제거 프로그램 마법사가 전체 정리를 수행하지 않기 때문에 오류가 발생합니다.
남은 정크를 수동으로 청소하면 이 문제가 해결됩니다. 발생하는 오류는 아래와 같습니다.

이 오류를 해결하려면 몇 가지 간단한 단계를 따르십시오.
-
먼저
제거 마법사를 사용하여 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();
}
}
}
이 코드는 오류 없이 새 데이터베이스를 성공적으로 생성합니다.