AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

DolphinScheduler 클러스터 배포 후 웹 콘솔 로그인 실패 문제 해결

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

DevOps

대상자

- 시스템 관리자/DevOps 엔지니어

- 난이도: 중간 (데이터베이스 구성, JDBC 드라이버, MySQL 인증 설정 등 기술적 지식 필요)

핵심 요약

  • 데이터베이스 비밀번호 불일치: 클러스터 내 노드 간 datasource.properties의 비밀번호가 일치하지 않아 로그인 실패
  • MySQL 드라이버 버전 불일치: com.mysql.jdbc.Driver 대신 com.mysql.cj.jdbc.Driver 사용 필요
  • MySQL 8.x 인증 플러그인 문제: caching_sha2_password 대신 mysql_native_password 설정 필요

섹션별 세부 요약

1. 문제 현상 및 초기 확인

  • 클러스터 배포 후 웹 콘솔 로그인 실패
  • 데이터베이스 연결 실패 로그 발생 (Access denied for user 'root'@'...')
  • 네트워크, 방화벽, 서비스 가동 상태 확인 후 문제 지속

2. 데이터베이스 구성 확인

  • datasource.properties 파일에서 비밀번호가 잘못 설정됨
  • 클러스터 내 모든 노드의 비밀번호 동기화 필요
  • MySQL 8.x 사용 시 caching_sha2_password 인증 플러그인과 JDBC 드라이버 호환성 문제 발생

3. JDBC 드라이버 문제 해결

  • 오래된 드라이버 mysql-connector-java-5.1.47.jar 사용 시 MySQL 8.x 호환성 문제
  • MySQL 8.x에 맞는 드라이버 mysql-connector-java-8.0.x.jar로 교체
  • lib/ 디렉토리에 오래된 드라이버 파일 제거

4. 데이터베이스 연결 URL 구성

  • useSSL=false, allowPublicKeyRetrieval=true, serverTimezone=Asia/Shanghai 파라미터 포함
  • spring.datasource.url 설정 예시:

```properties

spring.datasource.url=jdbc:mysql://:3306/ifrsdb?useSSL=false&allowPublicKeyRetrieval=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai

```

5. MySQL 인증 플러그인 설정

  • MySQL 8.x의 root 사용자 인증 플러그인을 mysql_native_password로 변경
  • SQL 명령어 예시:

```sql

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'your_password';

```

결론

  • 클러스터 노드 간 datasource.properties 비밀번호 동기화 및 JDBC 드라이버 버전 업그레이드가 필수
  • MySQL 8.x 사용 시 allowPublicKeyRetrieval=trueserverTimezone 파라미터 추가
  • mysql_native_password 인증 플러그인 설정 후 서비스 재시작 (stop-all.shstart-all.sh) 수행
  • 중요: 방화벽/보안 그룹 일시 해제 후 네트워크 연결 테스트(ping, telnet) 수행하여 문제 원인 확인