Synology NAS에 CloudBeaver 설치 및 MariaDB 연결 가이드

phpmyadmin 확실히 좋죠…. 근데, dbeaver를 이용하다보니 이쪽에 너무 적응을 많이 해버렸습니다. 이걸 서버에서 계속 사용하고 싶어서 방법을 찾다가 알게 되었네요. 일단 nas에 적용하는 방법을 정리해봅니다.

목차

  1. CloudBeaver 소개
  2. Container Manager UI로 설치
  3. Docker Compose로 설치
  4. 초기 설정
  5. MariaDB 연결
  6. 문제 해결
  7. 유용한 팁

CloudBeaver 소개

CloudBeaver란?

  • DBeaver의 웹 버전
  • 브라우저에서 DB 관리 가능
  • 다중 데이터베이스 지원
  • 무료 오픈소스

주요 기능

  • SQL 에디터 (자동완성 지원)
  • 데이터 뷰어/편집기
  • ER 다이어그램 자동 생성
  • 데이터 내보내기/가져오기
  • 다중 연결 관리

Container Manager UI로 설치

1단계: 이미지 다운로드

  1. Container Manager 실행
  2. 레지스트리 탭 클릭
  3. 검색창에 dbeaver/cloudbeaver 입력
  4. dbeaver/cloudbeaver 선택
  5. latest 태그 선택
  6. 다운로드 클릭

2단계: 폴더 생성

File Station에서:

/docker/cloudbeaver/
└── workspace/    (설정 및 데이터 저장)

3단계: 컨테이너 생성

  1. 이미지 탭 → dbeaver/cloudbeaver:latest 선택 → 실행
  2. 네트워크 설정
    • bridge 선택
    • 다음 클릭
  3. 일반 설정
    • 컨테이너 이름: cloudbeaver
    • 자동 재시작 활성화: ✓
  4. 포트 설정
    • 로컬 포트: 8978
    • 컨테이너 포트: 8978
    • 프로토콜: TCP
    포트 충돌시 8080, 9090 등으로 변경
  5. 볼륨 설정
    • 폴더 추가 클릭
    • /docker/cloudbeaver/workspace/opt/cloudbeaver/workspace
    • 읽기/쓰기: ✓
  6. 환경 변수 (선택사항)
   CB_LOCAL_HOST_ADDR = 0.0.0.0
   CB_SERVER_NAME = CloudBeaver
   TZ = Asia/Seoul
  1. 완료 클릭

4단계: 권한 설정

bash

# 권한 문제 발생시
sudo chmod -R 777 /volume1/docker/cloudbeaver/workspace

Docker Compose로 설치

방법 1: 단독 설치

/volume1/docker/cloudbeaver/docker-compose.yml:

yaml

version: '3.8'

services:
  cloudbeaver:
    image: dbeaver/cloudbeaver:latest
    container_name: cloudbeaver
    restart: unless-stopped
    
    ports:
      - "8978:8978"
    
    volumes:
      - ./workspace:/opt/cloudbeaver/workspace
    
    environment:
      # 기본 설정
      CB_LOCAL_HOST_ADDR: 0.0.0.0
      CB_SERVER_NAME: CloudBeaver Server
      
      # HTTP 강제 (SSL 에러 방지)
      CB_SERVER_URL: http://localhost:8978
      
      # 관리자 계정 (선택)
      # CB_ADMIN_NAME: admin
      # CB_ADMIN_PASSWORD: changeme
      
      # 시간대
      TZ: Asia/Seoul
    
    networks:
      - cloudbeaver-network

networks:
  cloudbeaver-network:
    driver: bridge

방법 2: MariaDB와 함께 설치

/volume1/docker/database/docker-compose.yml:

yaml

version: '3.8'

services:
  mariadb:
    image: mariadb:12.0.2
    container_name: mariadb-12
    restart: unless-stopped
    ports:
      - "3307:3306"
    volumes:
      - ./mariadb/data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: YourSecurePassword123!
      MYSQL_DATABASE: testdb
      TZ: Asia/Seoul
    networks:
      - db-network

  cloudbeaver:
    image: dbeaver/cloudbeaver:latest
    container_name: cloudbeaver
    restart: unless-stopped
    depends_on:
      - mariadb
    ports:
      - "8978:8978"
    volumes:
      - ./cloudbeaver/workspace:/opt/cloudbeaver/workspace
    environment:
      CB_LOCAL_HOST_ADDR: 0.0.0.0
      CB_SERVER_URL: http://localhost:8978
      TZ: Asia/Seoul
    networks:
      - db-network

networks:
  db-network:
    driver: bridge

실행

bash

cd /volume1/docker/cloudbeaver
docker-compose up -d

초기 설정

1. CloudBeaver 접속

브라우저에서:

http://NAS_IP:8978

⚠️ 중요: 반드시 http://로 접속 (https 아님)

2. 초기 설정 마법사

2-1. Welcome 화면

  • Next 클릭

2-2. Server Configuration

  • ✓ Enable anonymous access (선택사항)
  • ✓ Configuration mode
  • Next 클릭

2-3. Administrator credentials

Username: admin
Password: 안전한비밀번호
Confirm: 비밀번호재입력
  • Next 클릭

2-4. Finish

  • Finish 클릭
  • 자동으로 로그인 화면으로 이동

3. 로그인

  • 설정한 admin 계정으로 로그인

MariaDB 연결

방법 1: 외부 IP로 연결

  1. 상단 메뉴ConnectionNew Connection
  2. MySQL 또는 MariaDB 선택
  3. Main 탭 설정:
   Host: NAS_IP_주소 (예: 192.168.1.100)
   Port: 3307
   Database: testdb (또는 비워둠)
  1. Authentication 탭:
   Username: root
   Password: MariaDB비밀번호
   Save credentials: ✓
  1. Driver properties 탭 (선택):
   useSSL: false
   allowPublicKeyRetrieval: true
   serverTimezone: Asia/Seoul
  1. Test Connection 클릭
    • “Connected” 메시지 확인
  2. Save 클릭

방법 2: Docker 네트워크로 연결

(같은 docker-compose.yml로 설치한 경우)

  1. Connection 설정:
   Host: mariadb (컨테이너 이름)
   Port: 3306 (내부 포트)
   Database: testdb
  1. 나머지는 방법 1과 동일

문제 해결

1. SSL Protocol Error

증상: ERR_SSL_PROTOCOL_ERROR

해결:

  • http:// 로 접속 (https 아님)
  • 브라우저 캐시 삭제
  • 시크릿/InPrivate 모드로 접속

2. Connection Refused

증상: CloudBeaver 접속 안됨

해결:

bash

# 컨테이너 상태 확인
docker ps -a

# 로그 확인
docker logs cloudbeaver

# 포트 확인
netstat -an | grep 8978

3. MariaDB 연결 실패

증상: Database connection failed

체크리스트:

  • MariaDB 컨테이너 실행 중?
  • 포트 번호 맞음? (3307)
  • IP 주소 정확?
  • 비밀번호 정확?
  • 방화벽 설정?

테스트:

bash

# 네트워크 연결 테스트
telnet NAS_IP 3307

# MariaDB 직접 접속 테스트
mysql -h NAS_IP -P 3307 -u root -p

4. 권한 문제

증상: Permission denied

해결:

bash

# workspace 권한 변경
sudo chmod -R 777 /volume1/docker/cloudbeaver/workspace

# 소유자 변경
sudo chown -R 1000:1000 /volume1/docker/cloudbeaver/workspace

5. 메모리 부족

증상: Out of memory

해결: Container Manager에서 메모리 제한 증가

  • 최소: 512MB
  • 권장: 1GB 이상

유용한 팁

SQL 에디터 단축키

  • Ctrl + Enter: 현재 쿼리 실행
  • Ctrl + /: 주석 토글
  • Ctrl + Space: 자동완성
  • F11: 전체화면

데이터 내보내기

  1. 테이블 우클릭
  2. Export Data
  3. 형식 선택 (CSV, JSON, SQL 등)
  4. Download

ER 다이어그램 생성

  1. 데이터베이스 선택
  2. 우클릭 → View Diagram
  3. 자동으로 ER 다이어그램 생성

다크 모드 설정

  1. Settings → User Preferences
  2. Theme → Dark
  3. Save

세션 관리

  • 브라우저 쿠키로 자동 저장
  • 여러 연결 동시 관리 가능
  • 탭으로 구분

백업 스크립트 생성

  1. Tools → Generate SQL
  2. DDL 또는 DML 선택
  3. Copy to clipboard

보안 권장사항

1. 기본 포트 변경

yaml

ports:
  - "18978:8978"  # 기본 포트 대신 사용

2. 리버스 프록시 설정

nginx 또는 Synology Application Portal 사용

3. IP 접근 제한

방화벽 규칙으로 특정 IP만 허용

4. 강력한 비밀번호

  • 최소 12자 이상
  • 대소문자, 숫자, 특수문자 조합

5. 정기 업데이트

bash

# 이미지 업데이트
docker pull dbeaver/cloudbeaver:latest
docker-compose down
docker-compose up -d

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 Akismet을 사용하여 스팸을 줄입니다. 댓글 데이터가 어떻게 처리되는지 알아보세요.