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://
```
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=true
및serverTimezone
파라미터 추가 mysql_native_password
인증 플러그인 설정 후 서비스 재시작 (stop-all.sh
→start-all.sh
) 수행- 중요: 방화벽/보안 그룹 일시 해제 후 네트워크 연결 테스트(
ping
,telnet
) 수행하여 문제 원인 확인