# MariaDB란?
MariaDB는 오픈 소스 RDBMS이다.
MariaDB는 MySQL과 거의 완벽하게 호환되기 때문에 MySQL의 대체제로 사용할 수 있으며, 성능적인 면에서도 MySQL보다 우수하다고 알려져 있다.
> MySQL은 원래 오픈 소스 RDBMS였다. 그러나 오라클이 MySQL을 인수한 뒤, 라이선스 문제가 발생하게 되었다. 또한 무료 버전과 상용 버전으로 나뉘었다. 그러면서 무료버전과 유료버전의 급 차이를 두면서 무료 버전의 성능을 감소시켰다. 이에 MySQL을 개발한 마이클 몬티 와이드니어스 (Michael Monty Widenius)는 오라클과의 의견 충돌로 회사를 나와 새롭게 MariaDB를 개발했다고 한다.
## MariaDB 설치 및 실행 (Windows)
| | |
| ---------------------------------------------- | --------------------------------------------------------------------------------- |
|  | MariaDB 다운로드 ([https://mariadb.org/download/](https://mariadb.org/download/)) |
|  | Next |
|  | 라이센스 동의 체크 후 Next |
|  | 설치 경로 확인 후 Next |
|  | 루트 비밀번호, 원격 루트 접속 허용 여부, UTF8 사용여부 설정 후 next |
|  | 3306 포트를 사용한다면 수정, 그렇지 않다면 그냥 Next |
|  | Install |
|  | Finish |
|  | 작업관리자의 `서비스` 탭에서 `MariaDB` 수행중인지 확인 |
위와 같이 MariaDB를 설치 완료했다면 두 가지 방법으로 MariaDB에 접속할 수 있다.
| MariaDB Client를 사용하여 MariaDB에 접속 | HeidiSQL을 사용하여 MariaDB에 접속 |
| ----------------------------------------------- | ----------------------------------------------- |
|  |  |
> 여기서는 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의 구조를 간략히 설명하면 다음과 같다.

- `데이터베이스`, `스키마` : 테이블의 집합. 데이터베이스는 여러 테이블을 포함하고 있다.
- `테이블`, `표` : 데이터의 집합. 테이블은 여러 열과 행으로 구성되어 있다.
- `컬럼`, `열` : 데이터의 속성. 열은 데이터의 속성을 나타낸다.
- `로우`, `행` : 데이터의 레코드. 행은 데이터의 레코드를 나타낸다.
## 서버 접속
RDBMS를 설치하고 실행했다면, RDBMS 서버에 접속하여 데이터베이스를 생성하고, 테이블을 생성하고, 데이터를 추가, 수정, 삭제할 수 있다.
데이터베이스의 효용 중 하나는 보안이다. 데이터베이스는 사용자별로 데이터베이스에 접근 권한을 부여할 수 있다. 따라서 데이터베이스에 접근할 때는 사용자 이름과 비밀번호를 입력해야 한다.
### MariaDB 서버 접속
MariaDB 서버에 접속하기 위해서는 다음과 같은 명령어를 사용한다.
```bash
mysql -u 사용자이름 -p
```
`-p` 옵션은 비밀번호를 입력하라는 의미이다. 따라서 위 명령어를 실행하면 비밀번호를 입력하라는 메시지가 나타난다. 비밀번호를 입력하면 MariaDB 서버에 접속된다.
> 비밀번호가 없는 계정이라면 `-p` 옵션 없이 `mysql -u 사용자이름` 명령어를 사용하면 비밀번호를 입력하지 않고 접속할 수 있다.
이와같이 MariaDB 서버에 접속하면 SQL 명령어를 사용하여 데이터베이스를 생성하고, 테이블을 생성하고, 데이터를 추가, 수정, 삭제할 수 있다.