본문 바로가기

Linux & Unix

CentOS 7 실무 웹서버 세팅 2편(MySQL 5.6.x 컴파일 설치)


MySQL은 현재 가장 많이 이용되고 있는 버젼인 5.6을 이용해서 설치할 것이다. 설치방법은 누구나 쉽게 하는 바이너리가 아닌 소스컴파일을 이용한다. 


내가 소스컴파일을 꼭 고집할 이유는 없지만 실무로 MySQL을 사용하기 이전부터 소스컴파일로만 사용해와서 난 지금까지도 소스컴파일만 사용한다. 


한때 MySQL의 경우 소스컴파일보다 바이너리가 퍼포먼스가 더 좋았다는 테스트 결과도 있었지만 난 바이너리 설치를 해본적도 없고 그냥 최적화 하여 설치하는 소스컴파일이 좋아서 Apache, PHP, MySQL 만큼은 10여년 이상을 소스컴파일로만 설치해서 사용하고 있으니 내가 하는대로 따라오던지 바이너리 설치를 원할 경우  다른 블로그를 알아보던가 해라. 


간단히 원고를 작성해보니 copy / paste만으로도 충분히 MySQL을 컴파일 해서 설치할 수 있을 것 같다.  MySQL 5.5.x도 크게 다르지 않기 때문에 5.5.x도 문제없이 설치 가능할 것이다. 그외 버젼은 안해봐서 장담 못하겠다. 


* MySQL 서버 세팅은 root권한으로 설치를 진행한다. 일반 사용자로 로그인 했을 경우 su명령어를 이용하던 알아서 root로 접속해서 설치를 해야 한다.



#cd /usr/local/src

소스를 다운 받을 디렉토리로 이동한다.

컴파일할 소스코드들을 다운 받을 때는 /usr/local/src 안에 다운받아서 컴파일 해라.



#wget http://ftp.kaist.ac.kr/mysql/Downloads/MySQL-5.6/mysql-5.6.19.tar.gz

kaist의 미러링 서버에 등록된 mysql 소스를 다운 받는다. 다른 곳에서 받아도 무관하다. 엉뚱한 것만 다운받지 않는다면 문제는 없다.



#tar xvfz mysql-5.6.19.tar.gz

mysql 소스의 압축을 해제한다.



#groupadd mysql

mysql 사용자 그룹을 생성한다.



#useradd -M -g mysql mysql

mysql 사용자를 생성한다.



#yum install cmake.x86_64

mysql 5.5이상의 버젼부터는 cmake를 이용해야만 한다.



#yum install ncurses-devel.x86_64 

터미널에서 그림같은 텍스트를 그려줘야 할 때 필요한 패키지



#cd mysql-5.6.19

압축이 풀린 mysql소스 디렉토리로 이동



#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_DATADIR=/usr/local/mysql/data \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DWITH_EXTRA_CHARSETS=all -DENABLED_LOCAL_INFILE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \

-DSYSCONFDIR=/etc \

-DMYSQL_TCP_PORT=3306

makefile을 생성하는 과정이다.



#make

컴파일 하여 바이너리를 생성한다. 시간이 좀 걸릴 것이다.

샌드브릿지 I5 듀얼코어 2.3GHz 프로세서와 SATA3용 SSD가 장착된 맥북프로에서도 약 25분 정도 소요되었다.(자기 컴퓨터 쿼드프로세서라고 자랑할 사람 있겠지만, 나도 쿼드프로세서 달린 나름 고성능의 데스크톱 있다. 다만 단축키 문제로 가능하면 맥에서만 작업하려고 하다보니 듀얼코어 프로세서 달린 시스템을 쓰고 있을 뿐이다.)



#make install

컴파일로 생성된 바이너리 화일을 설치한다.



#chown -R mysql /usr/local/mysql

#chown -R mysql /usr/local/mysql/data 

#chgrp -R mysql /usr/local/mysql

설치된 mysql디렉토리에 권한 부여를 해준다.



#cd /usr/local/mysql

#scripts/mysql_install_db --user=mysql

MySQL DB 생성



#vi /etc/my.cnf 

아래를 참고하여 my.cnf 화일 수정 한다. 기타 추가적인 설정은 나중에 하더라도 아래 4개의 부분은 먼저 수정하도록 한다.

[mysqld]

datadir=/usr/local/mysql/data

socket=/tmp/mysql.sock

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid



#mkdir /var/run/mysqld

#chown mysql /var/run/mysqld

#chgrp mysql /var/run/mysqld

pid 화일을 생성할 디렉토리를 만들어주고 권한 부여를 해준다.



#/usr/local/mysql/bin/mysqld_safe -user=mysql &

MySQL 데몬 실행



#/usr/local/mysql/bin/mysql

MySQL 동작 확인 

아래의 스크린 샷처럼 실행된다면 성공한 것이다. root유저의 비밀번호 설정등을 해야하지만 그건 나중에 해라. 일단 quit를 쳐서 일단 종료하고 다음작업을 진행한다. 



#vi /etc/rc.d/rc.local

rc.local 에 MySQL 데몬 실행명령을 넣어주면 부팅시 자동으로 데몬을 구동한다.

ntsysv를 이용해도 된다. 나의 경우는 ntsysv를 이용하는 방법을 먼저 사용하고, ntsysv를 사용할 수 없는 경우에만 rc.local에 등록하는 편이다. 편한대로 해라.



#vi ~/.bash_profile

vi 에디터로 PATH=$PATH:$HOME/bin 뒤에 :/usr/local/mysql/bin을 추가해준다. 각 디렉토리는 구분은 콜론(:)으로 구분해준다.

이제 어느 디렉토리에서든 /usr/local/mysql/bin안의 프로그램을 실행할 수 있다.



* MySQL root계정의 비밀번호 변경은 언급하지 않아도 알아서 해야하는 필수 사항이다. 또한 실무 서버로 사용하기 위해서는 my.cnf 화일에 추가적인 설정이 더 필요하다.


MySQL 컴파일 설치하는 방법은 페도라, 레드햇도 크게 다르지 않다. 나중에 기분 내키면 my.cnf 설정에 대한 부분도 다뤄볼 수 있겠으나 요즘 내 기분이 심하게 다운된 상태로 관계로 장담할 수는 없겠다.


혹시나 재시작후 MySQL구동이 안될 경우에는 /etc/my.cnf 화일을 삭제해보라.


재 컴파일 해야하는 경우라면 아래와 같이 입력후 하면 된다.
#make clean 
#rm -f CMakeCache.txt