🏭 에러공장 10편 - SQLException 오류 해결법

🏭 에러공장 10편 - SQLException 오류 해결법

이번 에러는 DB와 Java의 연결이 끊겼을 때 발생합니다.

Exception in thread "main" java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)

SQL 문법 오류, 인증 실패, URL 설정 문제 등 다양한 이유로 발생하며, JDBC 기반 DB 작업 중 가장 많이 보이는 친구입니다.


❓ 대표 발생 상황

  1. 계정 인증 오류
    ID/PW 틀림 또는 해당 유저에게 권한이 없음
  2. DB URL 설정 오류
    호스트명, 포트번호, 데이터베이스 이름 잘못됨
  3. JDBC 드라이버 누락
    Maven 의존성 또는 JAR 파일 누락
  4. 테이블/컬럼 없음
    쿼리에서 호출한 테이블이나 컬럼이 실제로 존재하지 않음
  5. SQL 문법 오류
    괄호, 따옴표, 예약어, 오타 등

🛠 해결 전략

  • 1. DB URL, 계정 정보, 포트 확인
  • 2. JDBC 드라이버가 포함되어 있는지 확인
  • 3. SQLException 메시지에서 SQLState 코드 분석
  • 4. DB 툴(Workbench, CLI 등)에서 직접 쿼리 실행해보기
  • 5. PreparedStatement를 사용하여 SQL Injection 방지

🧪 예시 코드

String url = "jdbc:mariadb://localhost:3306/housing";
String user = "root";
String password = "1234";

try (Connection conn = DriverManager.getConnection(url, user, password)) {
    // 연결 성공
} catch (SQLException e) {
    e.printStackTrace();
}

📌 전체 설명 보기

👉 https://koynalpha-dev.tistory.com/entry/error10


🏷️ 추천 태그

Java, SQLException, DB 오류, MySQL 접속 실패, JDBC 예외, SQL 문법 오류, 에러공장, 데이터베이스 자바 연동


👉 다음 글 예고

에러공장 11편: StackOverflowError - 재귀 호출, 선 넘지 마!