본문 바로가기

데비안 리눅스 설치 가이드/MySQL

[MySQL] MySQL 설치하기 1부 - MySQL 5.6 설치 및 5.7 업그레이드 하기

반응형

소개


데비안 7에서 제공하는 MySQL 버전은 5.5 버전이다.


안정성이 확보된 것만 제공하므로 5.5버전을 사용하는 것이 서버에 좋겠지만

MySQL 5.5에서는 InnoDB에 Fulltext를 지원하지 않기때문에 InnoDB에서 혹시 Fulltext 지원이 필요하다면 MySQL 5.6을 설치해야 한다.

이제 MySQL 5.6을 설치해 보자.


여기서는 5.6을 처음 설치할 때와 5.5에서 5.6으로 변경하는 것 2가지를 다루겠다.



설치 환경


OS : Debian 7 - 64Bit

S/W : Apache2.2.22 / MySQL 5.5.31

설치할 S/W : MySQL 5.6



MySQL 5.6 설치 (처음 설치)



MySQL 홈페이지에서 최신의 5.6을 받는다.

데비안 리눅스지만 아래의 Generic버전용으로 받는다. (나중에 업그레이드면에서 편하다.)

여기서는 mysql-5.6.11-linux-glibc2.5-x86_64.tar.gz 파일을 기준으로 설치하도록 한다.



1. wget 이용해서 MySQL 파일 받기

mkdir -p /home/download

cd /home/download

wget mysql다운로드 주소



2. 받은 MySQL 압축 해제

cd /usr/local

tar xvfz /home/download/mysql-5.6.11-linux-glibc2.5-x86_64.tar.gz

mv /home/download/mysql-5.6.11-linux-glibc2.5-x86_64.tar.gz /usr/local



참고 : 잠시 설치가이드를 보자.

압축을 해제한 디렉토리에는 설치 가이드가 있다.

설치중 문제가 있거나, 자세한 설치방법을 알고 싶다면 가이드를 열어보면 된다. (INSTALL-BINARY)

cd /usr/local/mysql-5.6.11-linux-glibc2.5-x86_64

vi INSTALL-BINARY


파일을 열어서 설치 가이드를 보면 중간에 아래와 같은 명령어를 사용하라는 지시가 있다.

...

...

shell> groupadd mysql

shell> useradd -r -g mysql mysql

shell> cd /usr/local

shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz

shell> ln -s full-path-to-mysql-VERSION-OS mysql

shell> cd mysql

shell> chown -R mysql .

shell> chgrp -R mysql .

shell> scripts/mysql_install_db --user=mysql

shell> chown -R root .

shell> chown -R mysql data

# Next command is optional

shell> cp support-files/my-medium.cnf /etc/my.cnf

shell> bin/mysqld_safe --user=mysql &

# Next command is optional

shell> cp support-files/mysql.server /etc/init.d/mysql.server

...
...


이제 설치 가이드에 따라 설치해보도록 하자.


3. 심볼릭 링크 생성

심볼릭 링크를 생성하여 설치하면 나중에 업그레이드가 편해진다.

(심볼릭 링크는 윈도우의 단축아이콘과 같다.)

cd /usr/local/mysql-5.6.11-linux-glibc2.5-x86_64

ln -s /usr/local/mysql-5.6.11-linux-glibc2.5-x86_64 mysql


이제 /usr/local디렉토리내에 mysql이라는 심볼릭링크가 보이게 된다.



4. 계정 생성

mysql이라는 계정과 아이디를 만들어야 한다. (설치 가이드의 명령어와 같다.)

groupadd mysql

useradd -r -g mysql mysql



5. 소유자 및 그룹 변경

mysql디렉토리의 소유자를 변경하도록 하자.

cd /usr/local/mysql

chown -R mysql:mysql .

chown명령어를 사용하면서 mysql뒤에 :다시 mysql을 사용했다. 이것은 소유자와 그룹을 모드 mysql로 바꾼다는 것이다. 위에 있던 chown과 chgrp을 하나의 명령어로 실행한 것이다. .은 현재 디렉토리를 말한다. (chown은 소유자를, chgrp은 그룹을 바꾸는 명령어)



6. libaio1 설치

mysql_install_db을 실행하려면 libaio1이 필요하다 아래처럼 설치하고 진행하도록 하자. 

(프로그램 미설치하고 진행시 MySQL이 설치하라는 친절한 문구가 나오긴 하지만... 미리 설치하도록 한다.)

apt-get install libaio1



7. DB 설치

가능한 MySQL의 유연한 업그레이드를 고려한다면 데이터 저장장소를 따로 만들어야 한다.

우선 데이터 저장장소를 만든다. (여기서 /var/mysql/data 디렉토리를 저장소로 사용 할 것이다.)

cd /var

mkdir -p mysql/data


이제 DB를 설치하도록 하는데, 조건을 줘야 한다.

설치가이드에 나온 --user=mysql뿐만 아니라 --datadir값도 줘야 하는데 아래처럼 datadir는 금방전 만들었던 데이터 저장소를 가리키도록 하면 된다.

cd /usr/local/mysql

scripts/mysql_install_db --datadir=/var/mysql/data --user=mysql


PS. 소켓 설정을 아래처럼 할 수 있다.

mysql_secure_installation --socket=/var/run/mysqld/mysqld.sock



8. 소유자 변경 

디렉토리 소유자만을 변경하도록 한다.

데이터 저장소를 따로 만들었으므로 아래의 파란색 명령어는 생략한도록 한다.

cd /usr/local/mysql

chown -R root .

chown -R root data



9,. MySQL 환경설정 복사

MySQL 환경설정 파일인 my.cnf를 복사하도록 한다.

cd /usr/local/mysql/support-files

cp my-default.cnf /etc/my.cnf


데이터 저장 장소를 바꿨으므로 my.cnf 파일의 내용에서 datadir의 값을 아래와 같이 수정한다.

vi /etc/my.cnf


...

...


# basedir = .....

datadir = /var/mysql/data

# port = .....

# server_id = .....

# socket = .....


...
...



10. 백그라운드 실행

이제 mysqld_safe를 백그라운드로 돌리도록 한다. (&값은 백그라운드로 실행하라는 의미다.)

cd /usr/local/mysql

bin/mysqld_safe --user=mysql



11. 서비스 등록

서비스를 등록하도록 하자. (서비스 등록을 잘 모르면 다음 글을 읽자 서비스 등록)


설치 가이드 내용중 맨 아래의 명령어가 서비스 등록을 위해 존재하는 파일이다. 아래처럼 진행하자.

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


복사시 mysql.server 이름 그대로 가져오지 않고 mysql로 이름을 변경해서 복사했다.

이제 mysql을 서비스에 등록하자. (아래의 명령어를 실행하지 않으면 부팅시 MySQL을 수동으로 매번 실행시켜야만 한다.)

update-rc.d mysql defaults



12. 계정 등록

MySQL 설치는 모두 끝났다.

이제 MySQL의 root계정, 비밀번호를 등록해주면 MySQL 사용이 가능해 진다. 

(비밀번호 넣을때 꼭 ''사이에 넣도록 한다. 특수문자로된 비밀번호인경우 '' 없이 넣는 경우 인식이 정상적으로 안된다.)

cd /usr/local/mysql

bin/mysqladmin -u root password '등록할비밀번호'



13. MySQL 실행

이제 MySQL 콘솔을 실행해 보자.

cd /usr/local/mysql

bin/mysql -uroot -p


비밀번호를 넣으면 MySQL이 실행될 것이다.


mysql이 정상적으로 실행이 될 것이며, 재부팅해도 자동으로 MySQL이 실행될 것이다.

13. PATH 등록
마지막으로 어느 위치에서도 mysql 명령어가 실행 될 수 있도록 PATH를 고쳐주도록 하자.


vi /etc/profile

vi편집기로 profile을 열었다. profile은 쉘의 환경설정인데, 모든 사용자에게 적용되는 환경 설정이다. 

내용중 PATH부분을 찾아서 mysql 디렉토리에 있는 bin, 즉 바이너리 파일 경로를 넣어주면 된다. 아래 내용을 참고하여 빨간 코드를 추가한다.

if [ "`id -u`" -eq 0 ]; then

  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/usr/local/mysql/bin"

else

  PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"

fi

export PATH


고친 후 바로 사용이 가능하도록 아래의 명령어로 환경설정을 불러오도록 한다.

source /etc/profile



이제 PATH까지 등록했으니 어느 위치에서든지 mysql 명령어를 사용하여 접속 할 수 있게 되었다.


PS. 실행시 mysql.sock 또는 mysqld.sock 파일이 없다고 한다면 /etc디렉토리 안에 mysql디렉토리가 생성되어 있는지 확인한다.
간혹 라이브러리 설치시 /etc/mysql/my.cnf 파일이 생겨서 /etc/my.cnf 파일 대신 읽는 경우가 있다.


MySQL 삭제


MySQL5.6을 삭제하거나, 재설치, 에러등의 이유로 삭제할 경우 아래처럼 해주면 된다.


1. 먼저 실행중인 MySQL 서비스 중단

service mysql stop


2. 서비스 등록 해제 및 파일 삭제

update-rc.d mysql remove

rm -f /etc/init.d/mysql


3. dpkg 명령어를 통한 MySQL 삭제

rm -rf /usr/local/mysql

rm -rf /usr/local/mysql-5.6.11-linux-glibc2.5-x86_64


4. 데이터 저장소 디렉토리 삭제(DB가 삭제되므로 재설치인경우 제외!)

rm -rf /var/mysql


5. 설정 파일 삭제(환경 설정 유지 필요한 경우 제외!)

rm -f /etc/my.cnf

 






MySQL5.5에서 5.6으로 전환 (apt-get으로 5.5 설치한 버전 이용자)


이미 설치된 MySQL에서 5.6으로 전환시에는 처음 MySQL5.6 설치하는 것과 크게 다르지 않다.

이전 버전이 패키지 시스템으로 설치한 MySQL이라면 (apt-get이나 yum등으로 설치한 것) 설정 파일까지 깨끗하게 삭제하고 설치하라고 MySQL은 설명한다.

따라서 아래처럼 하면 된다. (DB는 삭제되지 않고 업그레이드 할 것이다. 그러나 호환성의 문제가 있을 수 있으니 DB 데이터 백업은 필수다)


1. 기존 MySQL5.5 삭제

apt-get으로 설치한 MySQL 5.5버전을 삭제한다. (코어를 삭제하면 서버도 같이 삭제된다.)

apt-get purge mysql-common mysql-server-core-5.5



2. 기존 설정값 삭제

rm -rf /etc/mysql



3. MySQL 처음 설치 과정 따라하기

MySQL 처음 설치 과정을 따라한다. 다만 주의할 점은 MySQL5.5에서 저장된 DB의 위치는 /var/lib/mysql이므로 설치시 데이터 저장소 위치인 /var/mysql/data를 /var/lib/mysql로 바꿔서 설치하도록 한다.




관련글

2013/05/17 - [컴퓨터/Debian] - [Debian] 데비안 리눅스에 MySQL 5.6 설치 및 5.7 업그레이드 하기 - 2부


반응형