RHEL/CentOS, Ubuntu 에 MySQL 5.6, 5.7 설치하기
개요
RHEL 7 / CentOS 7 부터는 MariaDB 가 탑재되어 있다. MariaDB 5.5 는 MySQL 5.5 와 완벽한 호환성을 보장한다고 한다.
하지만 MySQL 5.6 이상을 지원하는 app 의 경우 MariaDB 5.5 또는 MariaDB 10 이 제대로 도는지 확인하기가 힘드므로 마음고생하지 말고 그냥 권장하는 MySQL 버전을 설치하도록 하자.
RHEL/CentOS 에 수동 설치
MySQL 5.6 부터 yum 을 통한 설치를 지원하고 있다.
먼저 http://dev.mysql.com/downloads/repo/yum/ 에 연결하여 사용하는 리눅스 배포판과 버전에 맞는 저장소 설정 rpm 파일을 다운로드 받는다.
모든 패키지가 포함된 bundle 을 다운받는다.
MySQL 5.7
wget --no-check-certificate https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22-1.el7.x86_64.rpm-bundle.tar
CODEwget --no-check-certificate https://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-5.6.40-1.el7.x86_64.rpm-bundle.tar
CODE번들 압축 해제
tar xvf *bundle.tar
CODEyum 으로 설치
sudo yum localinstall MySQL-server* MySQL-client*
CODE
Yum 을 통한 설치
MySQL 5.6 부터 yum 을 통한 설치를 지원하고 있다.
먼저 http://dev.mysql.com/downloads/repo/yum/ 에 연결하여 사용하는 리눅스 배포판과 버전에 맞는 저장소 설정 rpm 파일을 다운로드 받는다.
RHEL / CentOS 7
MySQL 5.7
MySQL 5.7
rpm -ivh https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
MySQL 5.6
MySQL 5.6
rpm -ivh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
RHEL 6 / CentOS 6 / Amazon Linux
MySQL 5.7
rpm -ivh https://dev.mysql.com/get/mysql57-community-release-el6-11.noarch.rpm
MySQL 5.6
rpm -ivh http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
이제 yum 명령어로 mysql 을 설치할 수 있다. yum 을 통해 제공되는 패키지명은 mysql-community 로 시작하므로 yum search mysql-community 명령어로 전체 패키지 목록을 확인해 보자.
yum search
$ sudo yum search mysql-community
yum search 결과
============================================= N/S matched: mysql-community =============================================
mysql-community-bench.x86_64 : MySQL benchmark suite
mysql-community-client.x86_64 : MySQL database client applications and tools
mysql-community-client.i686 : MySQL database client applications and tools
mysql-community-common.i686 : MySQL database common files for server and client libs
mysql-community-common.x86_64 : MySQL database common files for server and client libs
mysql-community-devel.i686 : Development header files and libraries for MySQL database client applications
mysql-community-devel.x86_64 : Development header files and libraries for MySQL database client applications
mysql-community-embedded.i686 : MySQL embedded library
mysql-community-embedded.x86_64 : MySQL embedded library
mysql-community-embedded-devel.i686 : Development header files and libraries for MySQL as an embeddable library
mysql-community-embedded-devel.x86_64 : Development header files and libraries for MySQL as an embeddable library
mysql-community-libs.i686 : Shared libraries for MySQL database client applications
mysql-community-libs.x86_64 : Shared libraries for MySQL database client applications
mysql-community-libs-compat.i686 : Shared compat libraries for MySQL 5.1 database client applications
mysql-community-libs-compat.x86_64 : Shared compat libraries for MySQL 5.1.72 database client applications
mysql-community-release.noarch : MySQL repository configuration for yum
mysql-community-server.x86_64 : A very fast and reliable SQL database server
mysql-community-test.x86_64 : Test suite for the MySQL database server
이중에서 다음과 같은 패키지를 설치하면 된다.
- mysql-community-server : 서버
mysql-community-client: 명령행 클라이언트
mysql-community-libs :
mysql-community-common :
mysql-community-server 는 나머지 3개 패키지에 의존성이 걸려 있으므로 다음 yum 명령어는 4 개의 패키지를 전부 설치한다.
yum install mysql-community-server
기본 chracter-set 이 latin1 이므로 /etc/my.cnf 를 수정해서 utf-8 로 설정한다.( CentOS 6 에 yum 으로 MySQL 5.5 설치 참조)
amazon Linux 는 yum clean all 명령어를 사전에 수행하지 않으면 dependency 오류가 나서 제대로 설치되지 않음.
설치 완료후에 MySQL 을 구동한다.
systemctl start mysqld
root 암호와 보안 설정을 위해 mysql_secure_installation 를 실행한다.
mysql_secure_installation
MySQL 패키지 버전에 따라 설치시 자동으로 mysql_secure_installation 을 실행하는 경우도 있으니 설치후 콘솔 화면을 보고 암호가 저장되는 경로는 확인
CentOS 에서는 초기 암호가 /root/.mysql_secret 에 저장되는 경우가 있음.
A RANDOM PASSWORD HAS BEEN SET FOR THE MySQL root USER !
You will find that password in '/root/.mysql_secret'.
You must change that password on your first connect,
no other statement but 'SET PASSWORD' will be accepted.
See the manual for the semantics of the 'password expired' flag.
Also, the account for the anonymous user has been removed.
또는 다음 명령어로 초기 암호를 획득
$ grep 'password' /var/log/mysqld.log
Ubuntu 에 설치
https://dev.mysql.com/downloads/repo/apt/ 에서 저장소 패키지 다운로드
wget https://dev.mysql.com/get/mysql-apt-config_0.8.13-1_all.deb
CODE저장소 패키지 설치
sudo dpkg -i mysql-apt-config_0.8.13-1_all.deb
CODE- 화면에서 MySQL Server 를 선택하고 엔터키 입력하고 MySQL 버전 지정
MySQL 패키지 정보 업데이트
sudo apt update
CODE설치
sudo apt install mysql-server
CODE
MySQL 저장소 정보는 /etc/apt/sources.list.d/mysql.list 에 저장됨
systemd 연동
시스템 부팅시 자동 구동되도록 설정
systemctl enable mysqld
systemctl restart mysqld
암호 정책 변경
기존 암호 규칙을 사용하기 위해 password 정책 수정
echo 'validate_password_policy=LOW' >> /etc/my.cnf
echo 'default_password_lifetime=0' >> /etc/my.cnf
재구동
systemctl restart mysqld
구동되었으면 다음 명령어로 임시로 생성된 루트 패스워드를 알수 있다.
grep 'temporary password' /var/log/mysqld.log
처음 로그인하면 다음 명령어로 root 암호를 변경
mysql> set password=password('qwert123');
변경된 암호 적용
flush privileges;
같이 보기
- MySQL 기본 캐릭터 셋 설정하기 - RHEL/CentOS/Ubuntu
- MySQL root password reset 하기
- systemd(system daemon) 을 관리하는 systemctl 명령어 사용법
- MySQL 데이타베이스와 사용자 계정 생성하기