가상환경 설정

임유진·2025년 7월 9일

클라우드/인프라

목록 보기
1/25

Ubuntu

: Linux 계열의 운영체제

  • 서버, 데이터베이스 운영, 리눅스 학습, 소프트웨어 개발 환경 등으로 사용
  • 지금 : Oracle과 MySQL 데이터베이스를 구동하는 서버 운영체제로 사용

VirtualBox

: 물리적인 컴퓨터 안에 가상의 컴퓨터(VM)를 만드는 프로그램(하이퍼바이저)

  • Windows에서 Ubuntu 같은 다른 OS를 테스트하거나 개발 환경을 분리할 때 사용
  • 지금 : Ubuntu를 구동하는 가상 머신으로 사용

MobaXterm

: Windows용 SSH 터미널 + SFTP + X11 서버가 결합된 통합 관리 툴

  • Windows에서 원격 리눅스 서버에 접속하거나 파일 전송, 터미널 작업할 때 사용
  • 지금 : Windows에서 Ubuntu VM에 SSH 접속해 편하게 명령어를 실행

Docker

: 응용 프로그램과 필요한 라이브러리를 패키징해 독립적으로 구동하는 컨테이너 플랫폼

  • 데이터베이스, 웹 서버 등을 설치 없이 바로 실행하고 싶을 때 사용
  • 지금 : Oracle과 MySQL을 Ubuntu 안에서 각각 컨테이너로 띄워줌

Oracle Database

: Oracle 사에서 만든 고성능 데이터베이스 관리 시스템(RDBMS)

  • 대규모 데이터 처리, 금융 시스템, 기업용 DB에서 사용
  • 지금 : Oracle XE 버전을 Docker로 구동하여 SQL 학습과 실습에 사용

MySQL

: 오픈소스 관계형 데이터베이스

  • 웹 서비스, ERP, 소규모~중규모 데이터베이스
  • 지금 : Oracle과 함께 Docker로 구동해 비교 학습 및 테스트

DBeaver

: 다양한 DB에 접속 가능한 GUI 데이터베이스 클라이언트

  • SQL 쿼리 작성, 데이터 조회, 테이블 관리 등을 편리하게 하고 싶을 때 사용
  • 지금 : Windows에서 Oracle/MySQL에 접속해 데이터베이스를 GUI로 관리

흐름 및 역할

[Windows]
│
├── VirtualBox
│    └─ Ubuntu VM
│         ├─ Docker
│         │   ├─ Oracle XE 컨테이너 (1521포트)
│         │   └─ MySQL 컨테이너 (3306포트)
│
├── MobaXterm (SSH 접속, 터미널)
└── DBeaver (GUI 접속)
  • VirtualBox: Ubuntu 서버 실행

  • Ubuntu: Docker 컨테이너 실행

  • MobaXterm: 터미널 관리

  • DBeaver: 데이터베이스 관리

  • 이 구성이 완료되면,

    • Oracle과 MySQL을 하나의 Ubuntu VM에서 동시에 운영하고
    • Windows에서 GUI로 편하게 접속하며
    • MobaXterm으로 SSH 관리까지 할 수 있는 환경이 됨

환경 구성

  1. VirtualBox에 Ubuntu 설치
  • 가상 머신 생성

    • VirtualBox 설치 후, 새 VM 생성

      • 이름: ubuntu
      • OS: Ubuntu(64-bit)
      • CPU : 2GB
      • 기본 메모리: 4096GB
      • 가상 하드 디스크: 25GB 이상
  • 네트워크 포트포워딩 설정

    • SSH : 포트 22
    • Oracle : 포트 1521
    • mysql : 포트 3306
  1. Open SSH 서버 설치 (ubuntu 24.0x 버전에선 명시적인 설치 필수)
  • OpenSSH 서버 설치

    $sudo apt update
    
    # openssh 설치 시(yes 옵선 자동 적용)
    $sudo apt install openssh-server -y
  • OpenSSH 상태 확인 (active면 정상)

    $sudo systemctl status ssh
  • 실행중이 아니면 SSH 서버 시작하기

    $sudo systemctl start ssh
    $sudo systemctl status ssh
  1. Ubuntu 시간 변경

    # 현 시스템 시간 확인
    $timedatectl
    
    # 시스템 시간 변경 전 해당 지역 지원 여부 확인
    $timedatectl list-timezones
    
    # Seoul 단어가 포함된 데이터만 검색
    $timedatectl list-timezones | grep Seoul
    
    # 시간 변경
    $sudo timedatectl set-timezone Asia/Seoul
    
    $timedatectl
  2. ubuntu에 mysql 설치

  • 설치

    # 패키지 업데이트
    $sudo apt update
    
    # 설치 명령어
    $sudp apt install mysql-server
    
    # 설치된 mysql 버전 확인
    $mysql --version
    
    # mysql 실행 상태 확인
    $sudo systemctl status mysql
  • mysql root 계정으로 접속

    $sudo mysql -u root -p
    
    # databases 확인
    mysql>show databases;
    
    # 계정 확인
    mysql>select host, user from mysql.user;
    
    # alter 명령어로 pw 수정
    # root 계정은 pw 빈 칸으로 자동 설정됨
    mysql>alter user 'root'@'localhost' identified with mysql_native_password by 'root';
    
    # mysql 접속 해제
    mysql>exit
  • mysql 외부 접속을 위한 설정 파일 수정

    # find 명령으로 mysqld.cnf 파일의 위치 검색
    $sudo find / -name "mysqld.cnf"
    
    # /etc/mysql/mysqld.cnf 파일 편집
    $sudo vi /etc/mysql/mysql.conf.d/mysqld.conf
    
    # 열린 파일에서 모든 ip 접속 허용하게 변경(bind-address)
    bind-address = 0.0.0.0
    
    # 저장
    esc -> :sq! 
    
    # 수정 후 mysql server 재시작
    $sudo service mysql restart
    $sudo systemctl status mysql
    $sudo mysql -u root -p
    
    # 사용자가 원격에서 접속하도록 설정(이미 존재하면 생략 가능)
    CREATE USER 'root'@'@' IDENTIFIED BY 'root';
    
    GRAND ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
    
    FLUSH PRIVILEGES;  # 영구 저장
    
    SELECT host, user FROM mysqluser;
  1. Docker & Oracle 설치 및 확인
  • Docker 설치 및 확인

    # docker 설치 후 로그인
    $sudo apt install -y docker.io
    
    # docker 버전 확인
    $sudo docker --version
    
    # local system의 docker image 존재 확인
    $sudo docker images
    
    # local system의 docker container 확인
    $sudo docker ps -a
  • oracle dontainer 설치

    # docker 기반 oracle db 설치
    $sudo docker pull oracleinanutshell/oracle-xe-11g
    
    # 이미지로 컨테이너(실체화) 설치 및 실행
    # ubuntu 내에서 oracle container로 실행되는 db와 통신 시 1521번 포트로 접속하겠다는 설정
    # 1521(ubuntu 접속 시 포트) : 1521(orcle 자체 기본 포트)
    $sudo docker run -d --name oracle-xe-11g -p 1521:1521 oracleinanutshell/oracle-xe-11g
    
    # oracle 접속
    $sqlplus system/oracle
    
    # 일반 계정 (id scott / pw tiger) 생성
    SQL> create user scott identified by tiger;
    
    # scott 계성 관리 권한 부여
    SQL> grant connect, resource, dba to scott;
    
    # scott 계정으로 갈아타기
    SQL> connect scott/tiger
    **역할**:
  1. MobaXterm으로 Ubuntu 접속
  • MobaXterm 실행

  • SSH 세션 연결

    • 호스트: 127.0.0.1
    • 포트: 2222
    • 사용자: Ubuntu 사용자 ID
  • 접속 후 터미널에서 Docker 관리 가능
  1. DBeaver로 DB 접속
  • Oracle 접속

    • DB 유형: Oracle
    • 호스트: 127.0.0.1 / 포트 : 3306
    • 계정 : root/root
    • Driver properties에서 allowPublicKeRetrievalTRUE로 변경
    • Test Connection 해보고 연결
  • MySQL 접속

    • DB 유형: MySQL

    • 호스트: 127.0.0.1 / 포트 : 1521

    • Database: XE

    • 계정 : scott/tiger

    • SSH 추가 설정

      • 호스트 : 127.0.0.1 / 포트 : 22
      • 유저 : ubuntu/ubuntu
    • Test Connection 해보고 연결

profile
말하는 고구마

0개의 댓글