DBMS (Database Management System)
IT (Information Technology) 는 데이터를 가공해 사용자에게 유용한 정보를 제공하는 기술입니다. 따라서 데이터와 정보를 저장하는 DB 와 DB 를 관리하는 DBMS 야말로 IT의 기본이라고 할 수 있습니다. 스프링부트를 더 알아보기 전에 DB 구축을 하기 위한 DBMS 설치 및 설정을 알아보겠습니다.
MySQL & MariaDB
MySQL은 독보적인 인기와 점유율을 가지고 있는 오픈소스 DBMS 였습니다. 그런데 SUN에 인수되고 오라클이 또 SUN을 인수하면서 지금은 상용 버전과 GPL 라이선스를 가진 커뮤니티 버전으로 나뉘어져 있습니다.
오라클은 점유율 1위의 자체적인 상용 DB 를 가지고 있기 때문에 MySQL 출신 개발자들이 나와서 MySQL을 기반으로 MariaDB 라는 DBMS를 만들었습니다. MariaDB 는 MySQL의 기반이기 때문에 MySQL 과 호환이 되고, 거기에 계속해서 업데이트를 하고 있습니다. MySQL 의 상위호환이 목표라고 할 수 있겠죠. DB 랭킹을 살펴보면 MariaDB의 점유율이 계속해서 높아지는 걸 볼 수 있습니다.
Mac에서 MariaDB 설치하기
이번 포스트에서는 MariaDB 로 진행해보겠습니다. Mac에서는 homebrew를 이용하면 쉽게 설치할 수 있습니다. 터미널에서 간단하게 설치가 가능하죠.
다운로드
1 | brew update |
설치
1 | unset TMPDIR |
실행
1 | mysql.server start |
서버 상태 확인
1 | mysql.server status |
Windows에서 MariaDB 설치하기
다운로드
홈페이지 에서 zip 파일을 다운받아 압축을 풉니다.
설치
1 | mysql_install_db.exe --datadir=C:\db --service=MyDB --password=secret |
--datadir
: 데이타 파일 경로--service
: MariaDB를 서비스로 등록할 이름--password
: 접속 비밀번호
실행
설정한 서비스 이름으로 시작합니다.
1 | sc start MyDB |
접속하기
처음에는 root
계정으로 접속합니다.
1 | mysql -uroot |
데이터베이스 조회
1 | SHOW DATABASES; |
MySQL/ MariaDB 초기 설정
사용하기 전에 몇 가지 설정이 필요합니다.
UTF-8 설정하기
한글이 깨지지 않고 잘 나오게 하려면 기본적인 character encoding 설정을 utf-8
으로 변경해야 합니다. /etc/my.cnf
파일을 만들고 다음 내용을 작성합니다. DBMS를 재시작하면 적용됩니다.
1 | [mysqld] |
DB 생성하기
TESTDB 라는 이름으로 테스트용 DB를 만들어봅시다.
1 | CREATE DATABASE TESTDB; |
잘 만들어졌는지 확인해보겠습니다.
1 | SHOW DATABASES; |
계정 설정하기
root
계정은 시스템 계정이므로 테스트할 DB 인 testdb만 사용 가능하도록 개발용 계정을 만들어야 합니다. 먼저 root 계정으로 접속을 합니다.
1 | mysql -u root |
먼저 mysql 이라는 서버로 변경합니다.
1 | $ MariaDB [(none)]> USE mysql; |
mysql
데이터베이스의 user
테이블을 조회하면 사용자 목록을 볼 수 있습니다.
1 | $ MariaDB [mysql]> SELECT User, Host from user; |
localhost로만 접속 가능한 dev 사용자를 만들어봅시다. 비밀번호는 ‘init0000’ 으로 했는데 원하시는 비밀번호로 하시면 됩니다.
1 | $ MariaDB [mysql]> CREATE USER dev@localhost IDENTIFIED BY 'init0000'; |
dev@localhost 계정에 TESTDB의 테이블에 대한 권한을 부여합니다.
1 | $ MariaDB [mysql]> GRANT ALL PRIVILEGES ON testdb.* TO dev@localhost; |
권한 조회를 통해 확인할 수 있습니다.
1 | $ MariaDB [mysql]> show grants for dev@localhost; |
이제 dev 계정으로 접속해봅시다.
1 | mysql -u <username> -p <password> |
여기서 패스워드 입력하지 않고 -p 만 입력하면 패스워드 입력하라고 한번 더 나오니까 그 때 입력하셔도 됩니다.
1 | $ handonghoui-MacBook-Pro:etc handongho$ mysql -u dev -p |
로그인한 후, 데이베이스를 조회해보면 TESTDB 를 확인할 수 있습니다.
1 | MariaDB [(none)]> show databases; |
이제 테이블을 만들고 다른 애플리케이션을 통해 활용하면 되겠습니다. 다음 포스트에서는 스프링부트 에서 JPA 를 이용해 DB와 연결하고 데이터 다루는 방법을 살펴보겠습니다.