2025-01-05

Suhyeon Lee·2025년 1월 5일
0

자기주도학습

목록 보기
68/83

DBeaver로 작업한 MySQL은 어디에 저장되는가?

  • DBeaver

    • MySQL, PostgreSQL, Oracle 등 다양한 데이터베이스 관리 시스템(DBMS)에 연결하여 데이터를 조회하고 관리하는 GUI 클라이언트 도구
    • 따라서 보통 서버의 특정 위치에 저장되지 않고 대신 컴퓨터의 로컬 디렉터리에 설치됨
    • DBeaver는 단순히 MySQL 서버에 연결하여 SQL 쿼리를 실행하고 데이터를 조회/수정할 수 있는 인터페이스를 제공할 뿐
      • 실제 MySQL 데이터는 DBeaver를 통해 MySQL 서버의 데이터 디렉터리에 저장됨
        (DBeaver 자체에는 MySQL 데이터가 저장되지 않는다.)
    • 데이터베이스 관리 도구인 DBeaver
      • 별도의 데이터베이스 서버를 설치하지 않고 클라이언트 애플리케이션으로 동작
        - 따라서 DBeaver 자체에는 데이터가 저장되지 않음
  • MySQL 데이터베이스는 일반적으로 서버의 파일 시스템 내에서 관리

    • MySQL 서버가 설치된 디렉터리 내에 데이터 파일과 관련된 파일들이 저장됨
    • 기본적으로 MySQL 데이터 디렉터리는 "datadir"이라는 설정에 의해 정의
      • 이 디렉터리에는 MySQL 데이터베이스의 테이블 데이터와 인덱스 데이터가 저장됨
      • MySQL의 데이터 디렉터리 위치는 MySQL 설정 파일(일반적으로 my.cnf 또는 my.ini)에서 설정할 수 있으며 이 설정 파일을 통해 데이터 디렉터리의 경로 변경 가능
        - 기본적으로 MySQL은 일반적으로 데이터 디렉터리를 서버의 데이터 디렉터리 내에 생성
  • DBeaver는 다음과 같은 작업을 할 수 있지만, 데이터 자체는 연결된 MySQL 서버에 저장됨:
    - 데이터베이스 및 테이블 생성/수정/삭제
    - 데이터 조회, 추가, 수정, 삭제
    - 테이블 데이터 내보내기/가져오기
    - 데이터베이스 백업/복원

  • 따라서 DBeaver에서 MySQL 데이터를 직접 저장하는 방법은 없지만 대신 다음과 같은 방식으로 MySQL 서버에 데이터를 저장할 수 있음:
    1. DBeaver에서 MySQL 서버에 연결
    2. SQL 편집기를 사용하여 INSERT, UPDATE, DELETE 등의 쿼리를 실행하여 데이터를 추가/수정/삭제
    3. 데이터 편집기를 사용하여 테이블 데이터를 직접 수정
    4. 테이블 데이터를 CSV 파일로 내보내기/가져오기를 통해 데이터를 저장/로드
    ※ 이렇게 수정된 데이터는 연결된 MySQL 서버의 데이터 디렉터리에 저장됨

POINT
1. DBeaver는 MySQL, PostgreSQL, Oracle 등 다양한 데이터베이스 관리 시스템(DBMS)에 연결할 수 있는 클라이언트 도구입니다.
2. 사용자는 DBeaver에서 원격 또는 로컬에 설치된 DBMS에 연결하여 데이터베이스를 관리합니다.
3. 실제 데이터는 연결된 DBMS 서버에 저장됩니다. 예를 들어 MySQL의 경우 MySQL 서버의 데이터 디렉터리에 저장됩니다.
4. DBeaver는 단순히 DBMS에 연결하여 SQL 쿼리를 실행하고 데이터를 조회/수정하는 GUI 클라이언트 역할을 합니다. 따라서 DBeaver 자체에는 데이터가 저장되지 않으며, 연결된 DBMS 서버에 데이터가 저장됩니다. 홈페이지에서 PHP 언어를 사용할 경우 MySQL 데이터는 일반적으로 MySQL 서버의 데이터 디렉터리에 저장됩니다.

MySQL 데이터 저장 위치 조회

  • SQL로 show variables like 'datadir'; 을 입력하면 value로 MySQL 데이터가 어떤 위치에 저장되고 있는지 보여줌
  • 해당 위치로 이동해보면 스키마와 동일한 폴더가 하나 있고, 폴더 내부에는 .ibd 확장자 파일의 엔티티들이 존재하는걸 확인할 수 있음

가상 머신(Virtual Machine)

  • 컴퓨팅 환경을 소프트웨어로 구현한 것
    • 가상화(Virtualization) 및 하이퍼바이저(Hypervisor) 개념과 관련이 있음
      • 서버 가상화: 물리적 서버 하나를 여러 개의 가상 환경으로 분리하여 독립적인 여러 OS를 사용하는 것
      • 하이퍼바이저: 호스트 OS에서 다수의 게스트 OS를 실행하기 위한 기능을 제공하는 것
  • 가상화를 통해 생성된 것
  • 시스템 가상 머신(하드웨어 가상 머신), 프로세스 가상 머신(응용 프로그램 가상 머신)으로 나눔

시스템 가상 머신

  • 가상화를 제공하는 소프트웨어: 하이퍼바이저
  • 베어메탈 기반 가상화와 호스트 기반 가상화로 나뉨

  • 베어메탈 기반 가상화
    • 운영체제가 직접 프로그램을 제어하듯이 하드웨어에서 실행
  • 호스트 기반 가상화
    • 하이퍼바이저가 일반 프로그램과 같이 호스트 운영체제에서 구동
  • 여러 운영 체제를 쓰는 환경은 운영 체제가 완벽히 고립된 채로 같은 컴퓨터에서 존재할 수 있음

  • 가상 머신은 실제의 컴퓨터가 제공하는 것과 다른 형태의 명령어 집합 구조를 제공

  • sandbox에서 사용

    • sandbox?
      • 테스트를 위해 외부로의 연결점을 차단하거나 외부로부터의 접근 및 영향을 필터링할 수 있는 통제된 환경에서 프로그램을 동작시키는 것
  • Oracle VM VirtualBox 등

    • Oracle VM VirtualBox
      - 가장 많이 쓰이는 가상 머신 프로그램 중 하나

      샌드박스
      샌드박스(sandbox)는 보호가 필요한 어린아이들을 위해 모래통에서만 놀도록 하는데서 유래한 소프트웨어 보안 개발기법이다. 운영 환경이 저장소로부터 테스트되지 않은 코드 변경사항 및 전면적인 실험을 분리시키는 테스트 환경으로 웹 개발, 버전 관리를 포함한 소프트웨어 개발 환경에서 사용된다.
      예를 들면, 악성 바이러스나 악성코드의 경우, 이들의 공격행위를 테스트할때, 실제 운영체계나 또는 파일 또는 이러한 시스템에 추가적인 악영향을 주거나 이를 감염시킬 수 없도록 하는 차단된 환경이 필요하게 된다.

프로세스 가상 머신

  • 운영 체제 안에서 일반 응용 프로그램을 돌리고 단일 프로세스를 지원
  • 아무 플랫폼에서나 같은 방식으로 실행하는 프로그램(플랫폼 독립성)을 허용하고 기초가 되는 하드웨어나 운영 체제의 상세한 부분을 가져오는 독립 프로그래밍 환경을 제공하기 위함
  • JVM(JAVA Virtual Machine) 등
profile
2 B R 0 2 B

0개의 댓글

관련 채용 정보