Skip to content

DBeaver

DBeaver는 SQL 클라이언트이자 데이터베이스 관리 도구이다. 관계형 데이터베이스의 경우 JDBC API를 사용하여 JDBC 드라이버를 통해 데이터베이스와 통신한다. 그 밖의 데이터베이스(NoSQL)의 경우 사유 데이터베이스 드라이버를 사용한다. 자동 완성과 구문 강조를 지원하는 편집기를 제공한다. 이클립스 플러그인 구조 기반의 플러그인 아키텍처를 제공함으로써 애플리케이션 동작 중 상당수를 수정하여 데이터베이스에 특화된 기능이나 데이터베이스에 독립적인 기능들을 제공할 수 있게 한다. 이것은 자바로 작성된 데스크톱 애플리케이션이며 이클립스 플랫폼에 기반을 둔다.

DBeaver는 아파치 라이선스로 배포되는 자유 오픈 소스 소프트웨어이다.

How to install

ArchLinux:

sudo pacman -S dbeaver

데이터베이스 백업 방법

우선 로컬 클라이언트 설치가 필요함. (참고로 DBeaver 설치하면 mysqldump 가 포함되어있다. 만약 없다면 아래와 같이 진행... 또는 snap 권한문제일 수 있다)

mysql 의 경우:

sudo apt install mysql-client

MariaDB의 경우:

sudo apt install -y mariadb-client

그리고 which 명령으로 확인한 후

which mysqldump

이후 다음과 같이 진행.

  1. DBeaver 에서 백업하려는 테이블에서 오른버튼 클릭 하여 컨텍스트 메뉴 출력
  2. Tools > Dump database 를 클릭
  3. "MySQL Dump" 화면에서 "Local Client ..." 버튼 클릭
  4. 콤보 박스의 "Browse ..." 클릭
  5. "Add Home" 버튼 클릭
  6. 아까 확인한 mysqldump 위치의 디렉토리 위치를 입력

만약 snap 으로 설치했다면 권한 관련 이슈가 발생할 수 있다. 권한을 연결하거나 --classic으로 다시설치하면 된다.

완전히 동일한 데이터베이스로 부터 복원 방법

테이블 구조가 완벽히 동일한 "원본Table" 과 "대상Table" 이 있다면

"대상Table" 에서

마우스 오른쪽 버튼 > 컨텍스트 메뉴 > Import Data

에서 Table 을 선택하면 된다.

uid 까지 완벽히 복사된다.

Troubleshooting

Timeout 발생 시

연결 설정 (Connection settings) 에 들어가면 "Driver properties" 안에 Timeout 값을 조절할 수 있다.

Permission denied

dump 시작하면 다음과 같은 에러가 발생될 수 있다:

2025-05-21 11:14:27.396 - IO error: Cannot run program "/run/user/1000/doc/2891bed9/bin/mysqldump" (in directory "/run/user/1000/doc/2891bed9/bin"): error=13, Permission denied
2025-05-21 11:14:27.397 - java.io.IOException: Cannot run program "/run/user/1000/doc/2891bed9/bin/mysqldump" (in directory "/run/user/1000/doc/2891bed9/bin"): error=13, Permission denied
    at java.base/java.lang.ProcessBuilder.start(Unknown Source)
    at java.base/java.lang.ProcessBuilder.start(Unknown Source)
    at org.jkiss.dbeaver.tasks.nativetool.AbstractNativeToolHandler.executeProcess(AbstractNativeToolHandler.java:227)
    at org.jkiss.dbeaver.tasks.nativetool.AbstractNativeToolHandler.doExecute(AbstractNativeToolHandler.java:285)
    at org.jkiss.dbeaver.ext.mysql.tasks.MySQLNativeToolHandler.doExecute(MySQLNativeToolHandler.java:47)
    at org.jkiss.dbeaver.tasks.nativetool.AbstractNativeToolHandler.lambda$0(AbstractNativeToolHandler.java:88)
    at org.jkiss.dbeaver.runtime.RunnableContextDelegate.lambda$0(RunnableContextDelegate.java:39)
    at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:124)
Caused by: java.io.IOException: error=13, Permission denied
    at java.base/java.lang.ProcessImpl.forkAndExec(Native Method)
    at java.base/java.lang.ProcessImpl.<init>(Unknown Source)
    at java.base/java.lang.ProcessImpl.start(Unknown Source)
    ... 8 more

/run/user/1000/doc/... 이렇게 보이는건 snap의 샌드박스 모드 실행으로 인한 권한 제한게 걸렸을 수 있다. 자세한 내용은 snap 참조.

이 경우 권한을 연결하거나 --classic으로 다시설치하면 된다.

See also

Favorite site