View
프로그램의 개발/테스트를 위해서 로컬환경에 가벼운 DB를 설치해야 하는 경우가 있다.
상용DB를 사용할 수 없기 때문에 오픈소스DB를 사용해야 하는데 개발에 따라 RDBMS가 필요할 수도 NoSQL DB가 필요할 수도 있다.
오픈소스 DB는 종류가 많기 때문에 각 장단점을 고려하여 선정해야 한다 (참고: https://blog.capterra.com/free-database-software/)
이번에는 Spring 공부를 위해 DB를 구성할 예정이며, Java 기반으로 프로그램이 작성되기 때문에 MariaDB를 JDBC로 접근할 생각이다.
MySQL이 아닌 MariaDB를 선정한 이유는 내 노트북에서도 가볍게 돌아가기 때문이다. 그리고 기본적인 RDBMS 기능들은 모두 제공한다.
관리툴인 HeidiSQL 또한 가볍고 사용하기 쉽다.
* 설치
- MariaDB의 설치파일은 간단하게 다운 받을 수 있다. (https://mariadb.com/)
- 다운로드 후 설치를 진행한다. 이때 root 패스워드를 설정할 수 있다.
- 설치될 기능들을 선택 하는데 HeidiSQL은 왠만하면 설치하도록 한다. (default)
- 그 다음으로 서비스와 DB리스너가 떠있을 포트(default :3306) 을 설정하게 된다.
* 설정
1) 서비스 자동시작 변경
- 설치를 default값으로 수행한다면 자동으로 서비스가 MySQL로 등록되는데, 기본값으로 자동시작으로 되어 있다.
OS부팅 후 자동으로 DB가 기동되게 됨으로 사용하지 않는다면 불필요하게 리소스가 낭비된다. 따라서 설치 후 '서비스' 에서
MySQL 시작으로 자동->수동 으로 변경하는 것이 좋다. MariaDB는 MySQL기반으로 만들어진 가벼운 DB임으로 MariaDB의 많은 부분이
MySQL과 비슷하다. (명령어, 서비스 명, 설정 값 등)
2) 한글 설정(my.ini 수정)
- my.ini 파일은 mariaDB의 설정파일로 기본적으로 아래와 같은 경로에 설치된다. (windows 기준)
> (예시) C:\Program Files\MariaDB 10.3\data\my.ini
(https://mariadb.com/kb/en/library/configuring-mariadb-with-mycnf/)
- my.ini 파일 대신 my.cnf 파일을 사용해도 되며, 기능상의 차이는 없다.
- my.ini 파일은 여러 group 으로 나누어져 설정값을 입력하도록 되어 있는데 group 종류는 아래와 같다.
-가장 처음에 설정해야 할 것들 중 하나가 바로 character set 설정이다. 현재 인코딩은 아래와 같이 확인할 수 있다.
>[mysql] show variables like 'c%';
위의 인코딩 값을 utf8로 설정하여 mariaDB에서 한글입출력을 할 수 있도록 설정하기 위해서는 아래 값들을 my.ini 에 추가해줘야 한다.
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
init_connect=SET collation_connection=utf8_general_ci
init_connect=SET NAMES utf8
[mysql]
default-character-set=utf8
- 저장 후 mariaDB를 서비스에서 재시작 해준다.
3) cmd 에서 mysql 명령 수행
- mariaDB 를 설치하고 난 후 윈도우 cmd에서 mysql 명령 수행 시 정상적으로 수행되지 않는다. 이는 환경변수에 mariaDB\bin 경로가 없기 때문이다.
- 시스템 환경변수 Path 값에 %MYSQL_HOME%\bin 값을 추가하고 cmd 창을 새로 열어 수행하면 정상적으로 mysql 명령이 수행된다.
> (예시) C:\Program Files\MariaDB 10.3\bin
'02.IT공부(간헐적취미) > DATABASE' 카테고리의 다른 글
[MariaDB] InnoDB 구조 및 특성 (0) | 2017.04.02 |
---|---|
시스템 카탈로그, ACID, 동시성제어, MVCC, Snapshot too old, Isolation level, XA (0) | 2017.03.28 |