본문 바로가기

Linux/MySQL

CentOS + MySQL 컴파일 설치




MySQL 설치




yum을 이용하여 간편하게 설치도 가능하지만 MySQL을 컴파일을 하여 설치해보겠습니다.


설치 환경 : CentOS 6.7 / MySQL 5.5


먼저 Download를 받아야겠죠? mysql 홈페이지에 접속합니다.

https://www.mysql.com/


아래 사진과 같이 위부터 차례대로 빨간 박스를 클릭합니다.

Downloads - Community - MySQL Community Server



현재 5.7버전까지 나와있네요. 다른 버전을 받으셔도 상관없습니다만 저는 5.5 버전을 받아보겠습니다.



플랫폼을 Source Code 로 선택합니다.



CentOS는 Generic Linux를 받으시면 됩니다. 오른쪽에 다운로드 클릭



MySQL은 오라클에 넘어갔기 때문에 오라클 계정으로 로그인을 하셔야 합니다. 없으면 회원가입!



오라클 창이 뜨죠? 로그인을 합니다.



다운로드 버튼을 누르면 다운로드가 시작됩니다.





다운 받은 파일을 이제 리눅스 서버로 옮겨야겠죠. 혹은 리눅스 서버에서 다운 받거나..

저는 받은 파일을 리눅스의 /data로 옮긴 후 시작하겠습니다.


[root@localhost data]# ls

mysql-5.5.51.tar.gz






MySQL을 본격적으로 설치하기 전에 앞서 기존 mysql 삭제와 필요한 패키지들부터 설치하겠습니다.



[root@localhost data]# rpm -qa | grep mysql






위 명령어를 치고 나오는 패키지들은 삭제시켜줍니다.


[root@localhost data]# yum remove -y 패키지명

[root@localhost data]# yum -y install gcc gcc-c++ ncurses ncurses-devel cmake








5.5 이전에는 configure 파일을 이용하여 설치를 진행했는데 5.5부터는 cmake를 이용하여 설치하는 방법으로 변경되었습니다.

따라서 cmake 설치는 필수입니다. 그리고 mysql 계정을 생성해줍니다.


[root@localhost data]# groupadd mysql

[root@localhost data]# useradd -g mysql mysql





이제 본격적으로 설치를 진행해보겠습니다.


[root@localhost data]# tar zxvf mysql-5.5.51.tar.gz

[root@localhost data]# cd mysql-5.5.51






ls로 보시면 아까 말씀드린대로 configure 파일이 없고 cmake 파일이 존재합니다.

cmake를 이용하여 설치를 진행해보겠습니다.


[root@localhost mysql-5.5.51]# cmake \

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DWITH_EXTRA_CHARSETS=all \

-DMYSQL_DATADIR=/mysql/data \

-DENABLED_LOCAL_INFILE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \

-DSYSCONFDIR=/etc \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DWITH_EXTRA_CHARSETS=all 






다른 부분들도 변경이 가능하지만 특히

DCMAKE_INSTALL_PREFIX - mysql의 설치경로

DMYSQL_DATADIR - mysql의 data 저장경로

는 꼭 확인해주세요.



[root@localhost mysql-5.5.51]# make

[root@localhost mysql-5.5.51]# make install

[root@localhost mysql-5.5.51]# cd /usr/local/mysql/support-files

[root@localhost support-files]# cp mysql.server /etc/rc.d/init.d/mysqld

[root@localhost support-files]# cp my-huge.cnf /etc/my.cnf






여기서 복사할 my-huge.cnf 파일은 메모리에 따라 결정됩니다.


my-huge.cnf MySQL 메모리가 1-2GB 일 때

my-large.cnf MySQL 메모리가 512MB 이상일 때

my-medium.cnf MySQL 메모리가 32-64MB 일 때

my-small.cnf MySQL 메모리가 64M 이하일 때



[root@localhost support-files]# vi /etc/rc.d/init.d/mysqld

아래와 같이 수정

basedir=/usr/local/mysql

datadir=/mysql/data


[root@localhost support-files]# cd /usr/local/mysql

[root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/mysql/data

[root@localhost mysql]# service mysqld start

[root@localhost mysql]# ./bin/mysql_secure_installation

(처음 root 비밀번호 설정 후 Enter)


[root@localhost mysql]# /usr/local/mysql/bin/mysql

또는

[root@localhost mysql]# /usr/local/mysql/bin/mysql -u root -p


Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 3

Server version: 5.5.51-log Source distribution


Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.


Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective owners.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql> 





현재 mysql에 비밀번호가 걸려있지 않습니다. Ctrl + C를 눌러서 종료하고 나옵니다.


[root@localhost bin]# ./mysqladmin -u root password 비밀번호

[root@localhost bin]# ./mysql -u root -p

Enter password: 비밀번호 입력


mysql> 






환경에 맞게 my.cnf 를 설정해주어야하고 튜닝도 해야하고 이것저것 건드릴 부분이 많지만

일단 여기까지가 설치 및 실행 성공입니다.






자동실행


[root@localhost ~]# chkconfig --add mysqld

[root@localhost ~]# chkconfig mysqld on

[root@localhost ~]# chkconfig --list mysqld

mysqld          0:해제  1:해제  2:활성  3:활성  4:활성  5:활성  6:해제