본문 바로가기
MySQL Admin Guide/MySQL Ver.5.1 Admin Guide

2장 MySQL 설치하기 : (2) MySQL Binary 본 설치하기

by 모모레 2009. 3. 19.

앞에서 설명한 대로 MySQL을 설치하는 방법은 크게 3가지 방법이 있지만, 여기에서는 Binary 본을 사용하여 설치하는 방법만 설명한다. Binary 본을 사용하여 설치하는 것이 가장 효율적이고, 성능도 좋을뿐 아니라, 간단하고, 쉽고, 또한 가장 운영하기 편하다고 필자는 생각하기 때문이다.

여기에서 설명하는 설치법은 다음과 같은 가정하에 진행한다.

  1. 일반 32bit 리눅스 서버에 설치
  2. 바이너리 본을 사용하여 설치
  3. Community Version을 사용함.

전체 프로세스를 설명하면 다음과 같다.

  1. MySQL Download
  2. OS 계정 생성
  3. MySQL엔진 파일 이동 및 압축 풀기
  4. configure 실행
  5. 프로세스 확인

1.MySQL DownLoad
Community 버젼을 Download받기 위해서는 www.mysql.com에 접속하여야 한다. www.mysql.com으로 접속하여, Download 하는 페이지로 들어가서 가장 최신 본의 GA release본을 확인하고 가장 최신의 GA release 본 중 Binary Version으로 OS에 맞는 파일을 선택하도록 한다. 

 

[그림 2-1] GA확인 화면

현재(2009-03-19) 가장 최신의 GA release버젼은 화면에 보는 바와 같이 Version. 5.1임을 확인할 수 있다. "MySQL 5.1-Generally Available (GA) release for production use"부분을 클릭하면 [그림 2-2]와 같이 실제로 Download받는 곳으로 이동하게 된다.

 

[그림 2-2] Ver. 5.1 DownLoad 화면

[그림 2-2]에서 스크롤을 아래로 하여 확인하면, 각 OS별로 나뉘어져 있는 MySQL서버의 production을 확인할 수 있다. 여기서는 일반 Linux를 사용하고, 앞서 설명한 것처럼 바이너리 본을 받는다고 가정하였기 때문에  [그림 2-3]에서 보는 바와 같이 Linux (non RPM packages)에 와서 다운로드 받도록 해야 한다. 여기에서도 CPU의 종류에 따라 그리고 리눅스 OS의 bit에 따라 다른 것을 받아야 하는데 여기서는 일반 32bit Linux라고 가정하고 선택하도록 하면 Linux (x86)을 받도록 해야 할 것이다. 

 

[그림 2-3] Download 화면 - 1

화면의 "Pick a mirror"를 선택하면 계정을 입력하라는 화면이 나오게 된다. MySQL 사이트 계정이 없는 사람은 생성하여 접속하면 된다. 로긴하고 나면 Download받을 수 있는 사이트들의 리스트가 각 국가별로 나타나고, 그 중 하나를 선택하여 DownLoad를 시도하면 다음과 같은 화면이 보이면서 DownLoad할 수 있게 된다.

 

[그림 2-4] DownLoad 화면 –2

[그림 2-4]에서 보면 현재 받으려고 하는 압축 파일의 이름이 보여진다. 압축 파일의 이름을 통해 우리는 이 압축 본이 어떤 소스인지 판단 할 수 있다. 일반적으로 파일 압축본의 이름은 다음과 같은 구성으로 이루어 진다.

 

[그림 2-5] MySQL 이름 구성

모든 압축 본 파일명이 이와 100% 동일한 구성은 아니지만, 일반적으로 이와 같은 구성을 나타내고 있다. 파일의 앞부분에는 MySQL의 Version 정보를 두어서 어느 버젼의 서버인지 표현하고, 그 다음에는 사용 가능한 OS 정보를 나타낸다. 그리고 그 다음에는 컴파일 할 때 사용한 glib버젼을 나타낸다. 이와 같은 압축 본 파일의 이름을 가지고서 우리는 이 압축 본이 어느 서버에서 사용가능한지 버젼은 무엇인지 확인할 수 있다.

2.OS 계정 생성
사용할 바이너리 본을 다운 받은 후 설치 하기 전에 먼저 리눅스 서버에 MySQL을 설치하고 관리할 OS계정을 만들어야 한다. 가끔씩 root OS 계정을 사용하여 MySQL 프로세스를 띄우는 경우가 있는데 보안상 문제가 되므로 가능하다면, 따로 계정을 만들어 사용하도록 한다.

root OS 계정 사용시 문제가 되는 경우

  1. 서버 운영에 사용되는 OS계정을 DB운영으로 사용하는 경우 과도한 권한으로 인하여 운영 중 불필요한 실수를 유발할 가능성이 높다.
  2. 관리자 실수로 시스템 운영에 필요한 파일을 수정/삭제 하여 문제를 일으킬 가능성이 있다.

필자는 mysql group id와 mysql user id를 가진 계정을 생성하여 사용할 것이다.  

[root@hostname home]$ mkdir /home/mysql
[root@hostname home]$ groupadd –g mysql 300
[root@hostname home]$ useradd –u 300 –g 300 –d /home/mysql –s /bin/bash mysql
[root@hostname home]$ chown mysql:mysql /home/mysql

위와 같은 OS 명령을 사용하여 MySQL 서버를 운영하는데 필요한 OS 계정을 생성한다. 필자는 OS 계정을 생성할 때 bash shell을 사용하게 설정하고 home directory로 /home/mysql을 생성하여 사용하게 설정하였다.패스워드는 root에서 passwd 명령을 사용하여 설정하도록 한다.

3.MySQL 엔진 파일 이동 및 압축 풀기
이제 다운로드 받은 파일을 서버에 전송하여 압축을 풀어야 한다. 전송은 FTP를 사용하면 된다. 전송한 후 엔진을 둘 공간에 풀게 되면 그게 바로 엔진 설치 작업이 된다. 압축 파일을 설치할 공간에 위치 시킨 다음, 다음과 같이 압축을 풀면 된다. 

[root@hostname mysql] gunzip mysql-5.1.31-linux-i686-glibc23.tar.gz
[root@hostname mysql] tar –xf mysql-5.1.31-linux-i686-glibc23.tar
[root@hostname mysql] ls
mysql-5.1.31-linux-i686-glibc23

일반적으로 MySQL 엔진을 위치 시키는 곳은 /usr/local/ 이다. 이 곳에 압축을 푼 디렉토리 전체를 이동하여 위치 시킨 다음 symbolic link로 mysql을 생성하여 둔다. 이와 같이 symbolic link를 사용하는 이유는 엔진 업그레이드와 같은 작업 시 쉽게 처리하기 위함이다.

[root@hostname src] mv mysql-5.1.31-linux-i686-glibc23 /usr/local/
[root@hostname src] cd /usr/local
[root@hostname src] chown –R mysql:mysql mysql-5.1.31-linux-i686-glibc23
[root@hostname src] ln –s mysql-5.1.31-linux-i686-glibc23 mysql
[root@hostname src] chown mysql:mysql mysql

--참고--
참고로 필자는 위의 디렉토리 구성을 사용하는 것을 좋아하지는 않는다. /영역은 OS 사용영역으로 application과 같이 쓰이게 되면 OS 재설치가 필요한 경우 application을 다시 설치해야 하는 상황이 되기 때문이다. 필자는 그래서 MySQL을 /가 사용하지 않는 다른 mount point에 설치한다.

4.configure 실행
설치 작업 후 이제 다음과 같은 작업을 진행하면 완료 된다. Version 5.0까지는 base directory 위치 즉, 엔진이 설치된 디렉토리에 바로 configure라는 쉘 스크립트가 있어서, 이 스크립트를 실행하여 mysql 데이터베이스를 생성하고, 프로세스를 띄웠으나, Version 5.1부터는 이 스크립트가 support-files 및에 binary-configure 라는 이름으로 제공된다. 하지만, 여기서는 직접 그 configure 파일의 내용을 직접 실행해 보도록 한다.  그러면 configure에서 하는 작업은 어떤 것이 있는지 살펴 보자.

Configure에서 하는 작업은 크게 2가지가 있다.

  1. mysql database 생성.
  2. MySQL 프로세스 생성.

먼저 mysql database를 생성하기 전에 mysql database를 설치하고 프로세스를 띄울 때 사용할 configure 값들을 기술한 my.cnf 라는 이름의 conf 파일을 생성해야 한다. 이 파일은 보통 my.cnf라는 이름으로 만들며, 엔진 디렉토리의 support-files에 가면 예제 파일을 확인 할 수 있다. 그 중의 하나의 파일을 선택하여 /etc 밑에 my.cnf로 생성하도록 하자. 여기서 여러 생성값들 중에 우리는 datadir 값만 수정하도록 한다. datadir은 data directory 위치를 지정하는 곳으로, 이곳은 MySQL 프로세스가 생성하는 모든 파일들의 default 위치가 되는 곳이다. datadir은 설치한 엔진 밑에 존재하는 data 디렉토리로 설정하도록 한다.

my.cnf 파일을 만든 후, mysql database를 생성하기 위해 엔진에서 제공하는 다음의 스크립트를 base directory에서 실행하도록 한다.

./scripts/mysql_install_db --defaults-file=/etc/my.cnf --user=mysql

이 구문은 “/etc/my.cnf의 값들을 읽어서 mysql database를 생성하는데, owner로 mysql을 설정하여 생성한다.”는 의미이다. 위 스크립트를 실행하면 mysql database가 생성되고, 이 database는 data dictionary및 권한관리를 담당하는 데이터베이스로서 MySQL을 운영하는데 필요한 정보를 가진 가장 기본적인 database가 된다.