CentOS 6와 CentOS 7 에서의 MySQL 설치 및 설정

| 2018년 4월 25일 | 0 Comments

1. MySQL이란

1-1. MySQL이란

MySQL은 가장 널리 사용되는 오픈 소스 데이터베이스 관리 시스템(DBMS)입니다.

데이터베이스(DataBase)란 통합하여 관리되는 데이터의 집합체를 의미합니다. 고객정보나 구매정보 같은 테이블이 들어있는 커다란 저장소라고 생각하시면 됩니다.

MySQLc언어, c++, java, php등 다양한 프로그래밍 언어를 위한 API를 제공하고 있습니다.

MySQL의 경우 오픈소스 라이센스를 따르기 때문에 무료로 사용할 수 있으며, 다양한 운영체제에서 사용할 수 있습니다.

국내에서 웹호스팅이 EUC-KR일 경우 MySQL버전이 4.0에서 머물러있는 경우가 많은데 이는 제로보드에서 4.1이후 버전을 지원하지 않기 때문입니다. UTF_8의 경우 이런 문제가 없기 때문에 최신버전이 많습니다.

12. MySQL 5.7 버전 차이

오라클에서 제공하는 MySQL5.7에서 정리한 내용입니다.

(1)MySQL 5.6에 비해 읽기 전용으로 3배가 빨라졌다고 나와있습니다.

(2)New Optimizer, Native JSON support,Multi-source Replication 등의 추가 기능도 있어 개발자의 선택 폭이 더 넓어졌습니다.

(3)보안 기능이 향상되어 패스워드 설정 시 영문 소문자+대문자+숫자+특수기호가 포함된 최소 8자리 이상으로 설정해야 등록이 가능합니다.1년이 지난 패스워드는 변경해야합니다.

(4)sql mode가 강화되어 sql 표준에 맞지 않는 문법을 보다 강하게 막습니다.


2. CentOS 6에서의 MySQL설치 및 설정

2-1. MySQL 5.6.20 설치 및 설정

(1) 필수 라이브러리 설치

# yum -y install zlib curl gcc g++ gcc-c++ openssl openssl-devel libtermcap-devel ncurses-devel libc-client-devel bzip2-devel bison make cmake

(2) cmake 설치

mysql 5.5이상부터는 cmake를 이용하여 설치하기 때문에 먼저 cmake를 설치한 후 mysql설치를 진행합니다.

# cd /usr/local/src

# wget https://cmake.org/files/v3.9/cmake-3.9.6.tar.gz

# tar zxvf cmake-3.9.6.tar.gz

# cd cmake-3.9.6

# ./bootstrap

# make && make install

(3) MySQL 계정 생성

# groupadd -g 400 mysql mysql 그룹 생성

# useradd -u400 -g400 -d /usr/local/mysql -s /bin/false mysql mysql 유저 생성

(4) MySQL설치

# wget –user apm – password http://ris.smileserv.com/source/mysql-5.6.20.tar.gz

# tar zxvf mysql-5.6.20.tar.gz

# cd mysql-5.6.20

# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ 기본 설치 디렉터리 설정

-DMYSQL_DATADIR=/usr/local/mysql/data \ 데이터 디렉터리 위치 설정

-DDEFAULT_CHARSET=utf8 \ 언어 설정

-DDEFAULT_COLLATION=utf8_general_ci \ 서버 데이터 정렬, show collation 문을 사용하여 각 문자 집합에 사용할 수 있는 데이터 정렬

-DWITH_EXTRA_CHARSETS=all \ 포함할 추가 문자 세트

-DWITH_INNOBASE_STORAGE_ENGINE=1 \ 스토리지 엔진 “innobase”를 서버에 정적으로 컴파일

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ 서버가 소켓을 연결하는 unix 소켓파일 경로. 절대경로여야함.

-DSYSCONFDIR=/etc \ my.cnf 파일 디렉터리

-DMYSQL_TCP_PORT=3306 서버가 tcp/ip 연결을 청취하는 포트 번호

* https://dev.mysql.com/doc/mysql-sourcebuild-excerpt/5.5/en/source-configuration-options.html → 그 외의 옵션값들에 대한 상세사항 참조 가능

# make && make install

(5) MySQL 기본 설정

# cd /usr/local/src/mysql-5.6.20/support-files

# cp -arp my-default.cnf /etc/my.cnf 설정파일 이동

# cp -arp mysql.server /etc/init.d/mysqld

# rm -rf /usr/local/mysql/data 설치 후 필요없는 파일들이 들어가있음, 삭제

# /usr/local/mysql/scripts/mysql_install_db –user=mysql –datadir=/usr/local/mysql/data –basedir=/usr/local/mysql mysql의 데이터베이스를 생성하며, mysql디렉터리를 설정
# chown -R mysql.mysql /usr/local/mysql mysql
은 권한이 mysql이 아니면 구동이 되지 않기 때문에 소유자 변경

# chmod 700 /etc/init.d/mysqld

# chmod 711 /usr/local/mysql

# chmod 700 /usr/local/mysql/data

# chmod 751 /usr/local/mysql/bin

# chmod 750 /usr/local/mysql/bin/*

# chmod 755 /usr/local/mysql/bin/mysql

# chmod 755 /usr/local/mysql/bin/mysqldump

# echo “/usr/local/mysql/lib” > /etc/ld.so.conf.d/mysql.conf

(6) 자동실행 설정

# cd /usr/local/mysql

# ln -s lib lib64

# chkconfig –add mysqld

# chkconfig mysqld

(7) 방화벽 추가

# vi /etc/sysconfig/iptables

-A INPUT -p tcp -m state –state NEW -m tcp –dport 3306 -j ACCEPT

# /etc/init.d/iptables restart

3. CentOS 7에서의 MySQL설치 및 설정

3-1. MySQL 5.7.14 설치 및 설정

(1) 필요 라이브러리 설치

# yum -y install cmake ncurses-devel cmake. ncurses-devel 설치

(2) 계정 생성

# groupadd -g 400 mysql
# useradd -u400 -g400 -d /usr/local/mysql -s /bin/false mysql

(4) MySQL설치

# cd /usr/local/src

# wget –user apm – password http://ris.smileserv.com/source/mysql-5.7.14.tar.gz

# tar zxvf mysql-5.7.14.tar.gz

# cd mysql-5.7.14

# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ 기본 설치 디렉터리 설정

-DMYSQL_DATADIR=/usr/local/mysql/data \ 데이터 디렉터리 위치 설정

-DDEFAULT_CHARSET=utf8 \ 언어셋 설정

-DDEFAULT_COLLATION=utf8_general_ci \ 서버 데이터 정렬, show collation 문을 사용하여 각 문자 집합에 사용할 수 있는 데이터 정렬

-DWITH_EXTRA_CHARSETS=all \ 포함할 추가 문자 세트

-DWITH_INNOBASE_STORAGE_ENGINE=1 \ 스토리지 엔진 “innobase”를 서버에 정적으로 컴파일

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ 서버가 소켓을 연결하는 unix 소켓파일 경로. 절대경로로 설정.

-DSYSCONFDIR=/etc \ my.cnf 파일 디렉터리

-DMYSQL_TCP_PORT=3306 서버가 tcp/ip 연결을 청취하는 포트 번호

-DDOWNLOAD_BOOST=1 boost library가 없으면 cmake과정에서 에러가 발생, cmake과정에서 다운로드

-DWITH_BOOST=/usr/local/src/boost_1_59_0 boost library 디렉터리

* https://dev.mysql.com/doc/mysql-sourcebuild-excerpt/5.7/en/source-configuration-options.html → 그 외의 옵션값들에 대한 상세사항 참조 가능

# make && make install

* cmake 시 오류발생

mysql 5.7 버전 설치시 boost 라이브러리를 참조하기 때문에 이를 컴파일 과정에서 추가 해줘야함.

# cd /usr/local/src

# wget http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz

# tar zxvf boost_1_59_0.tar.gz

(5) boost 라이브러리 설치

# cd /usr/local/src/boost_1_59_0

# sh bootstrap.sh

# ./b2 install

(6) MySQL 기본 설정

# chown -R mysql.mysql /usr/local/mysql/*

# rm -rf /usr/local/mysql/data 설치 후 필요없는 파일들이 들어가있음, 삭제

# /usr/local/mysql/bin/mysql_install_db –user=mysql –datadir=/usr/local/mysql/data –basedir=/usr/local/mysql mysql의 데이터베이스를 생성하며, mysql디렉터리를 설정

# chmod 711 /usr/local/mysql

# chmod 700 /usr/local/mysql/data

# chmod 751 /usr/local/mysql/bin

# chmod 750 /usr/local/mysql/bin/*

# chmod 755 /usr/local/mysql/bin/mysql

# chmod 755 /usr/local/mysql/bin/mysqldump

# cp -arp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

# cp -arp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

# chmod 700 /etc/init.d/mysqld

(7) MySQL 자동 실행 설정

# chkconfig –add mysqld

# chkconfig mysqld on

(8) MySQL 경로 지정

# vi /root/.bash_profile

PATH=$PATH:$HOME/bin:/usr/local/mysql/bin: ← 추가

# source /root/.bash_profile

(9) MySQL 패스워드 설정

# vi /root/.mysql_secret

MySQL 5.7 버전의 경우 최초 접속시 패스워드가 임의로 할당되어 있기 때문에 바로 접속이 불가능

/root/.mysql_secret 내에 있는 임의로 할당된 root패스워드로 접속 후 패스워드 변경을 진행

# /etc/init.d/mysqld stop

# /usr/local/mysql/bin/mysqld_safe –skip-grant-tables &

# mysqladmin -uroot -p password [패스워드]

Enter password: [패스워드 입력]

Category: LINUX

About the Author ()