Mac Virtual Box에 테스트용 DB 서버 만들기

Dion·2020년 3월 21일
1

DataBase

목록 보기
1/1

Virtual Box로 설치하기

Virtual Box (For OS X) Version. 6.1.4 설치

다운로드 주소

  1. VirtualBox.pkg 를 더블클릭해서 설치합니다.
  2. 보안관련 문제가 발생해서 정상적으로 설치되지 않는 경우, 권한을 주고 설치합니다.

설치가 완료되면 실행합니다.

Ubuntu 18.04 LTS 버전 iso 파일 다운로드 받기

LTS버전을 사용하는 이유는 장기 지원 대상이기 때문에 안정적으로 사용할 수 있기 때문입니다.

18.04 버전은 그냥 제일 최신 버전을 사용하고 싶어서 선택했습니다.

다운로드 링크

우분투 이미지를 가상 환경에 설치하기

버튼을 클릭해서 전문가 모드를 클릭하고 아래와 같이 설정합니다.

만들기 버튼을 클릭하고 아래와 같이 설정합니다.

Default 설정이지만, Default 설정이 변경될 가능성이 있기 때문에 기록으로 남겨둡니다.

만들기를 클릭합니다.

그리고 나서 생성된 가상머신을 클릭하면 키보드 입력을 받을 수 있는 권한을 요구합니다. VirtualBox에 체크표시를 해줍니다.

VirtualBox를 종료해야한다고 나오는데, 종료해줍니다. 그리고 다시 실행합니다.

CD 모양에 +가 그려져 있는 아이콘을 클릭합니다. 그리고 추가(A)를 클릭합니다.

다운로드 받은 ubuntu 이미지 파일을 클릭합니다.

추가가 되면 추가된 이미지를 더블 클릭해서 가상 CD롬에 삽입해줍니다.

확인을 눌러 설정을 저장해줍니다.

네트워크 설정은 옵션입니다.

참고할만한 글을 찾아 링크만 공유합니다.

우분투 설치

이제 가상머신을 더블클릭해서 우분투를 설치합니다. error message가 표시되는데 그냥 기다려줍니다.

그리고 Welcome! 화면이 나옵니다.

[English] - [Continue without Updating] - [Done] - [Done] - [Done] - [Done]

의 단계를 진행하면

Filesystem setup 화면이 출력되게 됩니다.

[참고] 원래라면, Manual 설정으로 파티션을 잡아주는게 좋습니다. 어떠한 종류의 서버든 파티션을 나누는 편이 공간 사용 및 유지보수 측면에서 유리합니다. 그리고, 보안관련된 문제도 예방할 수 있는 것으로 알고 있어, 가능하다면 파티셔닝을 직접합니다.

[Use An Entire Disk] 을 하여 전체 디스크를 사용한다고 알려줍니다.

그 다음 계속 진행합니다.

SSH 접속을 위해 OpenSSH server를 설치해줍니다.

그 다음 미리 설치해둘 package를 선택하는 화면이 나오는데, 아무것도 설치하지 않아도 됩니다.

update 과정을 기다릴 수도 있고, 취소하고 reboot 할 수도 있는데, 저는 그냥 다 설치될 때 까지 기다리기로 하였습니다.

[참고] 리부트 시에 엔터를 누르면 설치 디스크를 자동으로 제거할 수 있습니다.

가상환경 세팅

sudo apt full-upgrade 로 전체 업데이트/업그레이드/삭제를 수행합니다.

sudo apt install mysql-server-5.7 -y 로 mysql을 설치합니다.

네트워크 설정

우리가 좀 더 편하게 접속하려면, 터미널로 ssh 접속을 하는 편이 좋습니다.

따라서 다음과 같이 포트 포워딩을 해줍니다.(네트워크 설정에 있습니다.)

그리고 netstat -an | grep 22000 명령어로 해당 포트가 정상적으로 할당되었는지 확인합니다.

ssh -p 22000 <계정명>@localhost 로 ssh 접속을 합니다.

정상적으로 진행된다면 뭔가 물어보는데 yes를 입력합니다.

비밀번호를 입력하고 접속되었다면, 우분투에서 w 명령어를 사용합니다.

ssh 접속 편하게 하기(AWS도 비슷한 방식으로 알고 있음!)

ssh키가 없는 경우

ssh-keygen -t rsa

엔터 세번

scp -P 22000 ~/.ssh/id_rsa.pub <계정명>@localhost

ssh -p 22000 <계정명>@localhost

cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

exit

ssh -p 22000 dion@localhost

바로 접속이 된다면 성공한 것입니다.

Mysql 설정하기

먼저 sudo find / -name "my.cnf"my.cnf 파일을 검색합니다.

/etc/mysql/my.cnf는 MySQL의 전역 설정 파일입니다.

해당 파일이

#
# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
#
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html

#
# * IMPORTANT: Additional settings that can override those from this file!
#   The files must end with '.cnf', otherwise they'll be ignored.
#

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

와 같다면, 다음 설정은 이곳이 아니라 다른 위치에 설정해주어야 합니다.

/etc/mysql/mysql.conf.d/mysqld.cnf에 설정해주면 됩니다.

[client]
default-character-set = utf8mb4

[mysqld]
init_connect = SET collation_connection = utf8mb4_unicode_ci
init_connect = SET NAMES utf8mb4
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

[mysqldump]
default-character-set = utf8mb4

그리고 나서 sudo service mysql restart를 실행합니다.

sudo mysql -u root -p 로 root 계정에 접속합니다.

show variables like 'char%';를 입력하여 아래와 같은 내용이 나오는지 확인합니다.

+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8mb4                    |
| character_set_connection | utf8mb4                    |
| character_set_database   | utf8mb4                    |
| character_set_filesystem | binary                     |
| character_set_results    | utf8mb4                    |
| character_set_server     | utf8mb4                    |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.01 sec)

참 쉽죠?

profile
코드리뷰와 고양이를 좋아하는 개발자입니다. 좋은 글을 위한 비판은 언제든 환영합니다.

4개의 댓글

comment-user-thumbnail
2020년 3월 22일

디온! 궁금한게 하나 있습니닷
저는 듀얼부팅으로 리눅스를 쓰고 있고 그래서 바로 mysql을 설치를 했어요! 설치를 하고 utf8로 cnf 파일을 변경을 하니까 mysql 콘솔 창에 한글이 입력 자체가 안되더라구요!😢 cnf 파일 변경 전(latin1)로 char set이 되어있었을 때는 콘솔에 입력은 되는데 테이블에 레코드를 삽입하면 에러가 뜨고요..
그래서 latin1이 기본 설정인 상태에서 테이블마다 혹은 db마다 utf8 세팅을 해주면 콘솔 입력도 잘 되고, 테이블에 레코드 삽입도 잘 되고, 테이블에서 한글이 깨지지도 않았어요!
구글링을 해보니까 설치한 mysql 버전이 EditLine wrapper인 경우 한글 입력이 안 될거고 그래서 readline 버전으로 mysql을 재컴파일을 해야 한다는데... 하하 컴파일 1도 모르겠습니다...😵
근데 애초에 editLine wrapper 버전이 한글 입력을 못한다면 utf8로 cnf 파일 설정을 하기 전(latin1)에도 한글 입력이 안되어야 하는 것 아닌가...! 왜 바꾼다음에만 입력이 안되는 것인가...!

하루정도 삽질 하고 난 다음에는
1. 영어로만 쓴다 하하
2. utf8 cnf 파일 생성하지 않고 매번 디비에 한글 세팅을 해준다

이렇게 고민하고 있는데 디온의 생각은 어떤가용...!

1개의 답글
comment-user-thumbnail
2020년 3월 22일

오 Virtual Box로 설치!!
설치 전에 디온님의 글을 보았더라면.. 더 좋았을 것을..
많이 배우고 갑니다.
혹시라도 문제가 생겨서 다시 설치할 일이 생긴다면 이 글을 참고하여 설치해야 겠습니다!
멋진 글 잘 보고 가요!! 👏

1개의 답글