[MySQL][Install] - 5.7 + CentOS 7(CentOS6포함) RPM 설치방법

1.패키지 다운로드를 위한 repository 설치 

centos, rhel은 편리하게 yum이라는 패키지 매니저를 제공해줍니다. 이 패키지 매니저를 이용해서 설치하면 편리하게 설치가 가능합니다. 

여기에서는 CentOS 7에서 설치하는 방법을 알아봅니다. 

 

먼저 다음사이트에 접속합니다.  

https://dev.mysql.com/downloads/repo/yum/ 

 

사이트에 방문 후 밑에 보시면 os에 따른 다운로드 버튼이 있는데 rhel6 혹은 7을 자신의 버전에 맞는 패키지로 다운로드 합니다. 참고로 centos6는 rhel 6, centos 7은 rhel7으로 받으시면 됩니다. 

 

다운로드한 rpm패키지를 설치합니다. 

rpm -Uvh mysql80-community-release-el7-3.noarch.rpm 

Repotistory Package 설치

설치는 바로 끝이납니다. 이것은 mysql을 설치한것이 아니라 repository라는 저장소를 추가하는 것입니다. 이 저장소에서 원하는 버전의 Mysql을 로컬 서버로 다운로드하여 설치하는 것입니다. 

 

설치된 내용을 확인합니다. 

rpm -qa | grep -i mysql 

그럼 다음과 비슷하게 화면이 출력됩니다. 

MySQL서버 설치 정보

 

이렇게 화면에 출력이 되면 Mysql을 다운로드 할 repository를 추가하게 된것 입니다. 

실제로 repository가 추가되었는지 확인해 보겠습니다. 

shell> yum repolist enabled | grep -i "mysql.*-community.*" 

현재 Repository 정보

 

여러 버전이 출력되는것을 확인해보실 수 있습니다. 

최근 mysql은 8.0까지 나와서 아마 8.x대 버전도 보이실 겁니다. 그러나 우리가 설치할 버전은 5.7이므로 5.7을 설치할 수 있도록 환경을 구성해 주어야 합니다. 

 

2.설치할 버전 선택을 위한 작업 

어떤 repository들이 사용 가능한지 확인이 필요할것 같습니다. 

shell> yum repolist all | grep -i mysql 

MySQL의 여러가지 버전

 

이중에서 우리가 원하는 버전만 설치가 가능하도록 환경을 구성해야 할듯 싶습니다. 

# 참고로 yum-config-manager 실행오류가 나오면 yum-utils 패키지를 설치해 줍니다.

shell> sudo yum-config-manager --disable mysql57-community 

shell> sudo yum-config-manager --enable mysql56-community 

이렇게 하면 5.6은 다운로드가 가능하고 5.7은 다운로드가 불가능하게 됩니다. 당연히 enable을 5.7로 바꾸고 실행해야 합니다. 

shell> sudo yum-config-manager --enable mysql57-community 

shell> sudo yum-config-manager --disable mysql80-community

 

이후 변경되었는지 확인해 봅니다.

shell > sudo yum repolist all | grep -i mysql

사용가능한 repository list들

MySQL 5.7이 사용가능한 것으로 바뀌었습니다.(384가 붙었는 부분)

 

과연 설치가 가능하도록 환경이 구성되었는지 확인해 보도록 하겠습니다. 

shell > cat  /etc/yum.repos.d/mysql-community.repo 

그럼 다음과 같은 화면이 출력됩니다. 

 

[mysql57-community] 

name=MySQL 5.7 Community Server 

baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/6/$basearch/ 

enabled=1 

gpgcheck=1 

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql 

 

여기서 주목해서 볼것이 enabled입니다. 이게 disabled로 되어있으면 사용하지 않겠다는 것이 됩니다. 

 

마지막으로 내가 설치할 버전의 repository가 설정이 되어있는지 확인해 보겠습니다. 

shell> yum repolist enabled | grep mysql 

사용가능한 리스트만 출력이 됩니다. (맨 앞에 !가 붙은게 사용가능하다는 표시입니다. 하지만 버전에 따라서 나타나지 않을 수도 있습니다.)

 

 

 

3.실제 버전 설치 

repository 환경설정이 끝났으니 이제 본격적으로 rpm을 이용한 설치를 진행해보겠습니다. 

먼저 설치 가능한 리스트를 확인해 봅니다.

shell > yum search mysql-community

Package List

MySQL Server를 설치해 보겠습니다.

shell> sudo yum install mysql-community-server 

MySQL 설치화면

이렇게 하면 설치가 완료된 것입니다. 

 

4. MySQL서버 시작  접속 

다음 명령어로 MySQL을 시작합니다. 

 

shell> systemctl start mysql 

 

서버의 상태가 어떤지 체크해 봅니다. 

shell> systemctl status mysql 

서버 실행 상태.

 

서버에 접속해 봅니다. 그런데 최고 유저인 root 유저를 알지 못합니다. 다음과 같은 방법으로 root유저의 암호를 찾아봅니다. 

shell> sudo grep 'temporary password' /var/log/mysqld.log 

2018-02-13T14:49:45.720116Z 1 [Note] A temporary password is generated for root@localhost: tur++-dvf7tI

 

이렇게 하면 초기 root 암호를 알 수 있습니다. 

 

자 이제 서버에 접속해 봅니다. 

shell> mysql -uroot -p 

enter password : 

 

이렇게 하면 암호를 물어보는데 여기에 전에 알아낸 암호를 입력합니다. 

그러면 서버에 접속한것을 확인할 수 있습니다. 

root 접속 화면

 

이제 root 암호를 나만의 암호로 바꾸어 줍니다. 

참고로 강력한 암호(숫자.영문.영문대문자.특수문자등이)가 설정되지 않으면 다음과 같은 에러가 발생합니다. 

ALTER USER 'root'@'localhost' IDENTIFIED BY ‘admin1234'; 

암호 바꾸기

 

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!'; 

root 암호를 임시 암호가 아닌 원하는 암호로 바꾸기

이렇게 하면 root 암호가 변경됩니다. 

 

 

 

5. 기타 지원 패키지 설치하기

MYSQL서버 말고도 client같은 터미널 접속 패키지와 jdbc connectot, odbc같은 개발환경 패키지도 다운로드 받아야 합니다. 그러나 이 패키지들은 또다른 서브 repository에 존재합니다. 다음과 같은 yum 명령을 수행합니다. 

shell> sudo yum --disablerepo=\* --enablerepo='mysql*-community*' list available 

기타 패키지 리스트

이렇게 하면 sub repository에 필요 패키지들을 다운로드 할 수 있습니다. 

 

서브 패키지를 설치하려면 먼저 설치할 리스트를 확인합니다. 

yum repolist all | grep -i mysql 

설치가 가능한 repolist 확인

 

설치할 패키지 이름을 확인합니다. 

shell> yum list | grep -i mysql57-community 

설치가능한 패키지 리스트 확인해보기

 

설치할 패키지를 확인하고 설치합니다. 

yum install mysql-community-devel 

패키지 설치화면

 

6. 원격 설정 

centos, rhel은 기본적으로 방화벽이 설정되어 있습니다. 그래서 Mysql이 접속할 수 있도록 port를 오픈해 주어야 접속이 가능합니다. 기본 포트는 3306입니다. 

다음과 같이 방화벽 포트를 오픈해 줍니다. 

centos6 

iptables -A INPUT -p tcp --dport 3306 -j ACCEPT  

 

centos7 

firewall-cmd --permanent --zone=dmz --add-service=mysql 

firewall-cmd --permanent --zone=public --add-port=3306/tcp 

firewall-cmd --reload 

firewall-cmd --list-ports 

이래야 원격에서 mysql을 접속할 수 있습니다. 

 

Designed by JB FACTORY