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/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로 연결
- 상단 메뉴 → 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 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
: 전체화면
데이터 내보내기
- 테이블 우클릭
- 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