phpmyadmin 확실히 좋죠…. 근데, dbeaver를 이용하다보니 이쪽에 너무 적응을 많이 해버렸습니다. 이걸 서버에서 계속 사용하고 싶어서 방법을 찾다가 알게 되었네요. 일단 nas에 적용하는 방법을 정리해봅니다.
목차
CloudBeaver 소개
CloudBeaver란?
- DBeaver의 웹 버전
- 브라우저에서 DB 관리 가능
- 다중 데이터베이스 지원
- 무료 오픈소스
주요 기능
- SQL 에디터 (자동완성 지원)
- 데이터 뷰어/편집기
- ER 다이어그램 자동 생성
- 데이터 내보내기/가져오기
- 다중 연결 관리
Container Manager UI로 설치
1단계: 이미지 다운로드
- Container Manager 실행
- 레지스트리 탭 클릭
- 검색창에 dbeaver/cloudbeaver입력
- dbeaver/cloudbeaver 선택
- latest 태그 선택
- 다운로드 클릭
2단계: 폴더 생성
File Station에서:
/docker/cloudbeaver/
└── workspace/    (설정 및 데이터 저장)3단계: 컨테이너 생성
- 이미지 탭 → dbeaver/cloudbeaver:latest선택 → 실행
- 네트워크 설정
- bridge선택
- 다음 클릭
 
- 일반 설정
- 컨테이너 이름: cloudbeaver
- 자동 재시작 활성화: ✓
 
- 컨테이너 이름: 
- 포트 설정- 로컬 포트: 8978
- 컨테이너 포트: 8978
- 프로토콜: TCP
 
- 로컬 포트: 
- 볼륨 설정
- 폴더 추가 클릭
- /docker/cloudbeaver/workspace→- /opt/cloudbeaver/workspace
- 읽기/쓰기: ✓
 
- 환경 변수 (선택사항)
   CB_LOCAL_HOST_ADDR = 0.0.0.0
   CB_SERVER_NAME = CloudBeaver
   TZ = Asia/Seoul- 완료 클릭
4단계: 권한 설정
bash
# 권한 문제 발생시
sudo chmod -R 777 /volume1/docker/cloudbeaver/workspaceDocker 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로 연결
- 상단 메뉴 → Connection → New Connection
- MySQL 또는 MariaDB 선택
- Main 탭 설정:
   Host: NAS_IP_주소 (예: 192.168.1.100)
   Port: 3307
   Database: testdb (또는 비워둠)- Authentication 탭:
   Username: root
   Password: MariaDB비밀번호
   Save credentials: ✓- Driver properties 탭 (선택):
   useSSL: false
   allowPublicKeyRetrieval: true
   serverTimezone: Asia/Seoul- Test Connection 클릭
- “Connected” 메시지 확인
 
- Save 클릭
방법 2: Docker 네트워크로 연결
(같은 docker-compose.yml로 설치한 경우)
- Connection 설정:
   Host: mariadb (컨테이너 이름)
   Port: 3306 (내부 포트)
   Database: testdb- 나머지는 방법 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 89783. MariaDB 연결 실패
증상: Database connection failed
체크리스트:
- MariaDB 컨테이너 실행 중?
- 포트 번호 맞음? (3307)
- IP 주소 정확?
- 비밀번호 정확?
- 방화벽 설정?
테스트:
bash
# 네트워크 연결 테스트
telnet NAS_IP 3307
# MariaDB 직접 접속 테스트
mysql -h NAS_IP -P 3307 -u root -p4. 권한 문제
증상: Permission denied
해결:
bash
# workspace 권한 변경
sudo chmod -R 777 /volume1/docker/cloudbeaver/workspace
# 소유자 변경
sudo chown -R 1000:1000 /volume1/docker/cloudbeaver/workspace5. 메모리 부족
증상: Out of memory
해결: Container Manager에서 메모리 제한 증가
- 최소: 512MB
- 권장: 1GB 이상
유용한 팁
SQL 에디터 단축키
- Ctrl + Enter: 현재 쿼리 실행
- Ctrl + /: 주석 토글
- Ctrl + Space: 자동완성
- F11: 전체화면
데이터 내보내기
- 테이블 우클릭
- Export Data
- 형식 선택 (CSV, JSON, SQL 등)
- Download
ER 다이어그램 생성
- 데이터베이스 선택
- 우클릭 → View Diagram
- 자동으로 ER 다이어그램 생성
다크 모드 설정
- Settings → User Preferences
- Theme → Dark
- Save
세션 관리
- 브라우저 쿠키로 자동 저장
- 여러 연결 동시 관리 가능
- 탭으로 구분
백업 스크립트 생성
- Tools → Generate SQL
- DDL 또는 DML 선택
- 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