우분투 20.04 에 MariaDB 설치하기
- WEB|DB|CODE
- 2021. 2. 12.
python의 웹 프레임워크인 Flask를 테스트하면서 DB를 연동해야할 일이 생겼다. MySQL을 설치할지 아니면 MariaDB를 설치할지를 고민하다 MariaDB를 설치하기로 했다.
[Flask 웹 프레임워크] Blueprint를 이용한 모듈화 이해하기
사실 MySQL과 MariaDB는 같은(?) DBMS다. Sun Microsystem가 MySQL을 오픈소스로 개발하던 회사를 인수하고 몇 년이 지난 뒤 MySQL을 다시 Oracle에 팔아넘겼다. 그리고 이 때 MySQL 개발진이 Oracle과 충돌을 빚고 퇴사한 뒤 개발한 DBMS가 바로 MariaDB다. (소스를 갖고 나왔겠지...)
MariaDB를 개발할 때 가장 중요한 목표 중 하나가 MySQL과의 100% 호환성이었다. 그리고 실제로 5.5 버전까지는 그 호환성이 놀라울만큼 유지되었고 이후 버전에서도 일반적인 기능 측면에서는 100% 호환되었지만 기한없이 무한정 호환성이 유지된다고 장담할 수는 없다. 이미 MariaDB의 버전이 올라가면서 로우레벨에서는 조금씩 차이가 발생하고 있으며 특히나 Oracle은 MySQL을 인수한 뒤 그다지 개발에 성의를 보이지 않고 있기 때문이기도 하다.
때문에 MySQL 보다는 지속적인 성능개선과 기술의 발전이 이루어지고 있는 MariaDB를 사용하는 것이 좋을 것 같아서.. Flask 웹 프레임워크 연동을 위한 DBMS로 MariaDB를 낙점하고 설치를 하게 되었다.
그 설치 과정을 기록한다.
MariaDB를 설치할 리눅스는 Ubuntu Linux 20.04 LTS 버전이다.
많은 사람들이 간과하는 것이지만 모든 DBMS는 Server 모듈과 Client 모듈로 구성된다. 설치 대상 서버의 기능에 따라서 Server 모듈만 설치할 수도 있고 Client 모듈만 설치할 수도 있다. 물론 둘다 설치하는 것이 일반적이긴 하다.
MariaDB 또한 Server와 Client로 구성되어 있다.
먼저 MariaDB 서버를 설치한다. 설치 전에 apt-get update 명령을 실행하여 패키지 목록을 최신화하는 것을 잊지 말자. 실제 설치되어 있는 패키지를 업그레이드 하는것이 아니라 현재 설치된 버전보다 더 최신버전이 있는지 목록만 없데이트 하는 것이다.
다음과 같이 apt install mariadb-server 명령을 실행하여 MariaDB 서버를 설치한다.
위 화면에서 sudo는 현재 계정이 ubuntu 계정이므로 apt install mariadb-server 명령이 실행되는 동안 root 권한으로 실행하라는 의미다. 사실 보안 상 sudo는 사용하지 않는 것이 좋다. 마치 sudo 명령을 사용하면 보안성이 높아지는 것으로 알고 있는 엔지니어들이 있는데... 결코 그렇지 않다는 점을 기억하자. sudo는 엔지니어들이 편하자고 사용하는 것이지 보안성이 좋은 것이 절대 아니다. 속지말자..!!
mariadb-server 패키지가 설치되었다면 다음은 mariadb-client를 설치하자. 이 클라이언트 모듈은 MariaDB에 접속하기 위한 다양한 도구가 포함되어 있다고 보면된다. apt-get install mariadb-client 명령을 실행하면 된다.
파일 설치는 허무할 만큼 간단하게 완료된다.
다음은 MariaDB의 계정과 보안설정 등을 수행하는 스크립트를 실행하여야 한다. 이 스크립트는 아직도 mysql~~로 시작한다. 아니 MySQL 설치단계에서의 보안성 설정과 너무도 동일하다.
스크립트를 실행하면 현재 root의 패스워드를 묻는데...(화면을 캡처하지 못했다. -.-) 이 서버에 MariaDB를 처음설치하는 것이므로 n 을 입력하고 다음단계로 넘어가자.
다음단계에서는 mysql의 root 비밀번호를설정하겠냐고 묻는다.
당연히 y를 입력하고 비밀번호를 설정해준다. 비밀번호는 숫자, 영문 대소문자 그리고 숫자와 특수문자를 모두 포함하면 좋고 길수록 더 좋다.
다음은 익명(anonymous) 계정을 지우겠냐고 물어본다.
익명계정은 지우는 것이 정답이다. ID와 비밀번호 없이 왜 DB 접속을 허용하는가? 애초에 이런걸 왜 만드는지 모르겠다.
다음은 MariaDB의 관리자계정인 root 계정으로 원격에서의 접속을 허용할지를 묻는다.
만약 원격PC에서 sqlyog 등을 통해 root 계정으로 MariaDB에 접속하길 원한다면 n 을 입력해 원격접속을 허용해야 하며 phpmyadmin과 같은 웹 기반 관리도구를 이용해 root로 MariaDB에 접속하는 것으로 충분하다면 y를 눌러 원격접속을 허용하지 않는 것을 권장한다.
다음은 test db를 삭제할 것인지를 묻는다.
사용할 일이 없다면... 삭제하는 것을 권장한다.
지금까지 설정한 내용을 즉시 반영하겠냐고 묻는다.
y를 입력해 즉시 반영한다.
이것으로 MariaDB의 설치와 보안설정이 완료되었다.
접속테스트를 해보자. mysql -u root -p 명령을 root 권한으로 실행해 접속해 보자.
비밀번호를 묻는데... 앞에서 입력해주었던 비밀번호를 입력한다. 입력한 비밀번호가 맞다면 정상적으로 접속된다.
show databases; 명령을 실행해 기본 DB의 목록을 확인한다.
MariaDB의 기본 적인 3개의 데이터베이스가 보인다. 아직도 mysql 이란 DB가 보인다.
버전을 확인해보자.
#MariaDB설치