Tagged: MariaDB

MariaDB 10.5.8 컴파일 설치

MariaDB 10.5.8 컴파일 설치를 해보도록 한다. 컴파일 설치를 위한 환경은 다음과 같다.

  • CentOS 8(x86_64) Latest version
  • 최소 설치(Minimal Installation) 환경

CentOS 8 에 최소 설치 환경이 매우 중요 하다. 최소 설치 환경이 아니라면 이 문서 내용 그대로 할 수는 없을 수도 있다.

컴파일 환경 구축

CentOS 8 을 최소설치하게 되면 패키지 저장소 또한 최소한으로 활성화가 된다. CentOS 8 은 패키지를 위한 저장소를 많이 분할해 놨는데 다음과 같다.

최소설치한 후 활성화된 저장소는 다음과 같다.

RedHat 배포판의 경우 프로그래밍 라이브러리들은 devel 패키지로 불린다. 이런 devel 패키지는 powertools 저장소에 존재한다. 따라서 이 저장소를 다음과 같이 활성화 시켜준다.

이제 컴파일을 위한 컴파일러와 라이브러리를 다음과 같이 설치 한다.

설치 작업시에 필요한 유틸리티 프로그램도 함께 설치해 준다.

Configure, Make, Install

컴파일을 위해 Configure 를 해준다. Configure 를 하기전에 소스 압축을 해제한 디렉토리에 build_target 디렉토리를 만들고 그 안에 다음의 내용을 기반으로 하는 build.sh 스크립트 파일을 작성해 준다.

build.sh 파일을 작성한 후에 다음과 같이 실행 퍼미션을 주고 실행해 준다.

아무런 오류 없이 실행이 됐다면 컴파일과 설치를 해준다.

이상 없이 컴파일과 정상적으로 설치가 되었다면 설치후 작업을 진행한다.

설치 후 작업

Mariadb 는 정상적으로 작동하기 위해서는 시스템 계정이 반드시 필요하다. 다음과 같이 시스템 계정을 생성해 준다.

계정 생성이 되었다면 이제 데이터베이스가 사용할 데이터 디렉토리를 생성해 준다.

MariaDB 의 라이브러리를 인식시켜준다.

이제 간단하게 데이터베이스를 초기화 해야 하는데, 그러기 위해서 my.cnf 파일을 다음과 같이 생성.

이제 시스템 데이터베이스를 생성해준다.

galera_recovery 파일 수정

galera_recovery 라는 명령어가 있다. 이 파일을 쉘 스크립트 파일인데, mariadb.service 파일에도 이 명령어가 사용되고 있다. 그런데, 이 파일에는 사용지로 mysql 로 하드코딩되어 있어서 오류를 낸다. 바꿔준다.

systemd 등록

Mariadb 에서는 systemd 등록을 위한 서비스 유닛 파일을 제공한다. 이 파일은 설치 디렉토리에 support-files/systemd 에 mariadb.service 파일로 존재한다. 이 파일을 열어서 mariadb 실행 계정과 그룹을 다음과 같이 바꿔 준다.

systemd 를 사용할 경우에 Max file open 갯수를 mariadb.service 에서 바꿔줄 수 있다. 물론 /etc/security/limits.conf 파일을 수정해야하는 경우도 있다.

이제 systemd 에 등록하고 활성화 해준다.

Mariadb 시작/중지

이제 제대로 설치가 되었는지 Mariadb 를 시작/중지 해보자.

아무런 에러가 없다면 정상적으로 작동하는 것이다.

MariaDB 10.2.13 소스 설치

MariadbMariaDB 는 MySQL 의 오픈소스 버전 입니다. MySQL 를 최초로 개발한 사람이 점점 폐쇄성이 짙어가는 MySQL 을 대체하기 위해 MySQL 을 복제하고 기능을 개선한 MySQL 의 또 다른 버전 입니다.

현재 MariaDB 는 10.2.13 버전 입니다. MariaDB 10 소스 설치를 해보겠습니다. 설치 환경은 다음과 같습니다.

  • CentOS 7
  • 64bit

준비

다음의 패키지가 설치되어 있어야 합니다.

 

다운로드 및 unpack

 

Configure and make and install

MariaDB 는 cmake 를 이용하기 때문에 일반 Configure 와는 다르게 이것을 이용 합니다.

 

설치후 작업

설치가 끝난 후에는 수동으로 옮겨주어야할 파일들이 존재 합니다. 그래서 설치 후 작업을 다음과 같이 진행 합니다.

계정을 추가 합니다.

디렉토리 설정과 관련된 my.cnf 내용은 다음과 같습니다.

다음과 같이 디렉토리를 생성하고 소유권을 바꿔 줍니다.

MariaDB 라이브러리 시스템 인식.

시스템 데이터베이스 생성.

Systemd 스크립트 등록.

user, group 을 mysql 에서 maria 로 바꿔 주고 등록해줍니다.

 

galera_recovery 파일에 mysql 를 maria 로 바꿔 줍니다.

 

다음과 같이 mariadb 를 시작해 줍니다.

 

Nginx + PHP-FPM + MariaDB 설치 (CentOS 7)

과거에는 APM (Apache + PHP + MySQL)이 인기있는 플랫폼이 였지만 최근에는 Nginx 가 나오고 PHP-FPM 이 나오면서 NPM 으로 많이 대체되고 있는 추세에 있습니다. 이 글은 Nginx,PHP-FPM, MariaDB 설치에 관한 것입니다.

준비

이 글에서 NPM을 설치하는 환경은 다음과 같습니다.

  • CentOS 7.2.1511
  • X86_64
  • Selinux Disable
  • 작성시간: 2015. 12. 27

설치하는 방법은 CentOS 7 에서 제공하는 패키지 관리 프로그램인 YUM을 이용하는 것입니다. 다음과 같이 CentOS 7 를 최신 버전으로 만듭니다.

 

PHP 설치

다음과같이 YUM 을 이용해서 설치해 줍니다.

php-mysql 은 MariaDB 와 연동하기 위한 것임으로 함게 설치해 줍니다.

systemctl 에 등록하고 시작해 줍니다.

php-fpm 의 pool 설정을 다음과 같이 해줍니다.

세션(Session) 디렉토리의 소유권을 cacti 로 변경해 줍니다.

 

MariaDB 설치

MariaDB 의 최신 버전 설치를 위해서 다음과 같이 YUM 저장소를 추가해 줍니다. YUM 저장소 추가는 다음 내용을 파일로 저장해주면 됩니다.

현재 MariaDB 의 최신버전은 10.1 이기 때문에 baseurl 에 버전이 정확해야 합니다. 다음과 같이 설치를 해줍니다.

systemctl 에 등록을 해주고 데몬을 시작해 줍니다.

mysql_secure_installation 을 실행해서 root 패스워드와 불필요한 데이터베이스를 삭제 합니다.

 

Nginx 설치

Nginx 의 최신 버전 설치를 위해서 다음과 같이 YUM 저장소를 추가해 줍니다. YUM 저장소 추가는 다음 내용을 파일로 저장해주면 됩니다.

cacti 서비스를 예를들어 다음과 같이 cacti.conf 파일을 작성합니다.

웹 서비스를 위한 홈 디렉토리가 ‘/home/cacti’ 를 만들어주고 www 디렉토리를 생성해 줍니다.

nginx 문법체크를 하고 systemctl 에 서비스를 등록하고 서비스를 시작해 줍니다.

80(http) 방화벽 설정

80 포트, 즉 HTTP 를 위한 방화벽 설정을 다음과 같이 해줍니다.

 

 

MariaDB 10 소스 설치

MariadbMariaDB 는 MySQL 의 오픈소스 버전 입니다. MySQL 를 최초로 개발한 사람이 점점 폐쇄성이 짙어가는 MySQL 을 대체하기 위해 MySQL 을 복제하고 기능을 개선한 MySQL 의 또 다른 버전 입니다.

현재 MariaDB 는 10.0.14 버전 입니다.  MariaDB 10 소스 설치를 해보겠습니다. 설치 환경은 다음과 같습니다.

  • 배포판: CentOS 7
  • 아키텍쳐: 64bit

준비

MariaDB 10.0.14 버전은 MariaDB 홈페이지에서 다운받을 수 있습니다. 그런데, 이 소스 버전을 가지고 설치를 할 수도 있지만, Fedora 배포판에서 패치한 버전을 가지고 설치를 해보겠습니다.

Fedora 배포판의 경우에 10.0.14 버전에 보안 패치나 경로에 대한 패치 그리고 CentOS 7 의 Systemd 를 지원하도록 하는 스크립트를 제공 합니다. 이것은 SRPM 을 다운받아 소스를 패치하는 방법을 썼습니다.

Configure && Compile && Install

MariaDB 는 cmake 를 이용하기 때문에 일반 Configure 와는 다르게 이것을 이용 합니다.

위 설정은 다음과 같은 주요한 기능을 가집니다.

  • Aria 스토리지 엔진 지원
  • Partition 스토리지 엔진 지원
  • XtraDB 스토리지 엔진 지원
  • TokuDB 플러그인 지원

설치 후 작업

Fedora 배포판의 설정중에 디렉토리 설정 부분을 많이 인용을 했기 때문에 기존의 컴파일 설치한 디렉토리와는 사뭇 다릅니다. 대부분의 소스 컴파일을 설치했을 때에는 대부분 설치할 디렉토리인 PREFIX 만 지정하기  때문에 벤치디렉토리, 서포트디렉토리등이 모드 PREFIX 이하에 놓입니다. 하지만 위 설정을 보시면 Fedora 배포판 호환인 RedHat 디렉토리 구조를 계승하고 있다는 것을 인지하시기 바랍니다.

설치가 끝난 후에는 수동으로 옮겨주어야할 파일들이 존재 합니다. 그래서 설치 후 작업을 다음과 같이 진행 합니다.

CentOS 7 데서부터 도입된 systemd 등록을 위한 파일들을 설치 합니다.

그리고 다음과 같이 스크립트 파일들을 복사해 줍니다.

이제 mariadb 를 운영하기 위한 계정을 생성해 주고 디렉토리 퍼미션을 조정해 줍니다.

이렇게 한 후에 다음과 같이 MariaDB 에 기본 데이터베이스들을 생성해 줍니다.

이제 다 되었습니다. systemd 를 이용해서 mariadb 를 시작하면 됩니다.

MariaDB 오픈 소스 데이터베이스

MariaDB 는 한 개발자의 노력을 시작된 오픈 소스 프로젝트 입니다. 과거 오픈 소스 데이터베이스의 대명사인 MySQL 을 개발한 개발자 중에 한인 Monty Widenius. 1962년 핀란드 태생으로 1995년 MySQL 데이터베이스를 개발하기 시작해서 그 이듬해에 첫 릴리즈를 하게 됩니다. 그리고 1998년, 3.21 버전부터 www.mysql.com 을 만들어 운영하면서 명실상부한 오픈 소스 데이터베이스로 발을 딛기 시작 합니다.

Monty Widenius
MySQL 을 개발한 Monty Widenius

MySQL은 오픈소스 정책을 가지고 있지만 개발과 판매등을 총괄하는 회사가 있습니다. MySQL AB 라는 회사인데, 개발지원에서부터 판매, 홍보까지 MySQL에 거의 모든것을 관장하던 회사입니다. MySQL이 오픈소스이긴 하지만 라이센스정책이 이중으로 되어있어(GPL, CopyRight) 이러한 라이센스 관련해서 제품의 구성등 전반적인 부분도 이 회사에서 모두 관리합니다.

MySQL이 오픈소스 진영에서 이름을 날리고 있던 2008년에 썬 아킥텍쳐 및 썬 OS로 유명한 ‘Sun microsystems’ 에 85억 달러에 인수 됩니다. 이때에 MySQL을 전부 총괄하던 MySQL AB 회사도 함께 넘어감으로써 모든 지적재산권도 썬으로 넘어가게 됩니다. 그러던 것이 1년도 않된 시점인 2009년 4월 오라클이 썬마이크로시스템즈를 인수함으로써 MySQL AB 의 모든 지적재선권은 다시 오라클로 넘어갑니다.

Oracle. 오픈소스 진영에서는 거의 악날함을 자주 보여줬던 RDBMS 최강의 회사 입니다. 상용시장에서 독보적인 오라클 데이터베이스 를 가지고 있었고 인수전에는 MySQL과 알게 모르게 경쟁하던 데이터베이스 제품을 가진 회사였기 때문에 인수당시부터 오픈소스진영에서는 MySQL에 대한 운명(?)에 대해서 우려하는 목소리가 많았습니다. ‘오라클 스럽게 죽일거다’라는 소리가 자주 들렸지요.

그런데, MySQL AB를 설립했던 Michael “Monty” Widenius(마이클 ‘몬티’ 비드니우스) 라는 사람이 오라클을 뛰쳐 나옵니다. 오픈소스 정의감으로 뛰쳐나왔으면 드라마틱하겠지만 오라클에서 대우가 별로 맘에 않들었다고 하네요. 그러한 그가 나와서 뭘했을 까요? 배운게 도둑질인데, 오라클 회사를 나와서 ‘Monty Program’ 이라는 것을 하게됩니다. 그리고 이 ‘Moty Program’ 에서 GPL 라이센스로 되어있는 MySQL 코드를 Branch 해서 RDBMS를 만들게 되었는데 그것이 바로 ‘MariaDB’ 입니다.

Monty Widenius 는  오라클이 MySQL 을 인수하게되자 오픈 소스 진영에 MySQL 을 구해달라는 호소문을 올리기도 합니다.

[MySQL 을 구해주세요!!]

실제로 오라클이 MySQL 을 인수하고 난 후에, 오라클은 라이센스 정책을 변경했으며 MySQL 의 테스트 소스코드를 비공개로 변경했습니다.

이러한 오라클의 폐쇄적인 정책으로 불구하고 MariaDB 는 수많은 개발자들의 기부로 인해서 성장했고 대부분의 리눅스 배포판에서 MySQL 을 대체하는데 이르렀습니다. 현재 MariaDB 는 10 버전을 출시로 더욱 강력해지고 안전한 데이터베이스를 제공하고 있습니다.

Mariadb
Mariadb 의 로고