# MariaDB란? MariaDB는 오픈 소스 RDBMS이다. MariaDB는 MySQL과 거의 완벽하게 호환되기 때문에 MySQL의 대체제로 사용할 수 있으며, 성능적인 면에서도 MySQL보다 우수하다고 알려져 있다. > MySQL은 원래 오픈 소스 RDBMS였다. 그러나 오라클이 MySQL을 인수한 뒤, 라이선스 문제가 발생하게 되었다. 또한 무료 버전과 상용 버전으로 나뉘었다. 그러면서 무료버전과 유료버전의 급 차이를 두면서 무료 버전의 성능을 감소시켰다. 이에 MySQL을 개발한 마이클 몬티 와이드니어스 (Michael Monty Widenius)는 오라클과의 의견 충돌로 회사를 나와 새롭게 MariaDB를 개발했다고 한다. ## MariaDB 설치 및 실행 (Windows) | | | | ---------------------------------------------- | --------------------------------------------------------------------------------- | | ![1](https://hackmd.io/_uploads/Bk4cWFU1R.png) | MariaDB 다운로드 ([https://mariadb.org/download/](https://mariadb.org/download/)) | | ![2](https://hackmd.io/_uploads/rJccbFLJC.png) | Next | | ![3](https://hackmd.io/_uploads/ryzsbtUkA.png) | 라이센스 동의 체크 후 Next | | ![4](https://hackmd.io/_uploads/SJPiZK810.png) | 설치 경로 확인 후 Next | | ![5](https://hackmd.io/_uploads/S15i-YUyA.png) | 루트 비밀번호, 원격 루트 접속 허용 여부, UTF8 사용여부 설정 후 next | | ![6](https://hackmd.io/_uploads/B1Aj-YLyA.png) | 3306 포트를 사용한다면 수정, 그렇지 않다면 그냥 Next | | ![7](https://hackmd.io/_uploads/SJb3-FL1C.png) | Install | | ![8](https://hackmd.io/_uploads/ByXhWYLyC.png) | Finish | | ![9](https://hackmd.io/_uploads/BJShbt81C.png) | 작업관리자의 `서비스` 탭에서 `MariaDB` 수행중인지 확인 | 위와 같이 MariaDB를 설치 완료했다면 두 가지 방법으로 MariaDB에 접속할 수 있다. | MariaDB Client를 사용하여 MariaDB에 접속 | HeidiSQL을 사용하여 MariaDB에 접속 | | ----------------------------------------------- | ----------------------------------------------- | | ![10](https://hackmd.io/_uploads/SkO2bKIk0.png) | ![11](https://hackmd.io/_uploads/B1o2-K810.png) | > 여기서는 MariaDB Client를 사용하여 MariaDB에 접속하여 진행한다. ## MariaDB 설치 및 실행 (macOS) macOS에서는 `Homebrew`를 사용하여 `MariaDB`를 설치할 수 있다. 1. `brew install mariadb` : MariaDB 설치 2. `mysql.server start` : MariaDB 서버 시작 3. `brew services start mariadb` : MariaDB 서비스 자동 시작 (옵션) 4. `mysql` : MariaDB 접속 ## RDBMS의 구조 SQL을 사용해서 RDBMS를 다루기 전에 RDBMS의 구조에 대해 알아보자 RDBMS는 데이터를 테이블 형태로 저장하고 관리한다. 이러한 테이블은 여러 열과 행으로 구성되어 있다. 따라서 데이터를 기록하는 최종적인 곳은 일조으이 `표`이다. 이러한 표 구조에 많은 데이터를 저장하다보면, 데이터를 찾거나 수정하는 것이 어려워진다. 즉, 이를 정리정돈할 필요성이 생긴다. 마치 파일들을 정리정돈하기 위해 폴더를 사용하는 것과 같다. RDBMS도 이와 유사하게 데이터를 정리정돈하기 위해 `데이터베이스`를 사용한다. 즉 데이터베이스는 테이블의 집합이다. 테이블은 데이터의 집합이다. 이렇게 데이터베이스를 사용하면 데이터를 쉽게 찾고, 수정할 수 있다. RDBMS의 구조를 간략히 설명하면 다음과 같다. ![image](https://hackmd.io/_uploads/BkQCs9UyR.png) - `데이터베이스`, `스키마` : 테이블의 집합. 데이터베이스는 여러 테이블을 포함하고 있다. - `테이블`, `표` : 데이터의 집합. 테이블은 여러 열과 행으로 구성되어 있다. - `컬럼`, `열` : 데이터의 속성. 열은 데이터의 속성을 나타낸다. - `로우`, `행` : 데이터의 레코드. 행은 데이터의 레코드를 나타낸다. ## 서버 접속 RDBMS를 설치하고 실행했다면, RDBMS 서버에 접속하여 데이터베이스를 생성하고, 테이블을 생성하고, 데이터를 추가, 수정, 삭제할 수 있다. 데이터베이스의 효용 중 하나는 보안이다. 데이터베이스는 사용자별로 데이터베이스에 접근 권한을 부여할 수 있다. 따라서 데이터베이스에 접근할 때는 사용자 이름과 비밀번호를 입력해야 한다. ### MariaDB 서버 접속 MariaDB 서버에 접속하기 위해서는 다음과 같은 명령어를 사용한다. ```bash mysql -u 사용자이름 -p ``` `-p` 옵션은 비밀번호를 입력하라는 의미이다. 따라서 위 명령어를 실행하면 비밀번호를 입력하라는 메시지가 나타난다. 비밀번호를 입력하면 MariaDB 서버에 접속된다. > 비밀번호가 없는 계정이라면 `-p` 옵션 없이 `mysql -u 사용자이름` 명령어를 사용하면 비밀번호를 입력하지 않고 접속할 수 있다. 이와같이 MariaDB 서버에 접속하면 SQL 명령어를 사용하여 데이터베이스를 생성하고, 테이블을 생성하고, 데이터를 추가, 수정, 삭제할 수 있다.