개요
이 문서는 CentOS 6.8 시스템에 MySQL 5.6 버전을 압축 파일(.tar.gz) 형태로 설치하는 절차를 설명합니다. 공식 바이너리 패키지를 사용하여 수동으로 설치하는 방식으로, 주로 커스터마이징이 필요한 서버 환경에서 활용됩니다.
사전 준비 사항
- 운영체제: CentOS 6.8 (Final)
- MySQL 버전: mysql-5.6.31-linux-glibc2.5-x86_64.tar.gz
- 다운로드 위치: MySQL 공식 다운로드 페이지
이전 버전이 필요할 경우, 다운로드 페이지 내 "Looking for previous GA versions?" 링크를 통해 접근할 수 있습니다. 본 안내서는 MySQL 5.7과의 설치 차이점이 있음을 감안해 5.6 기준으로 작성되었습니다.
기존 MySQL 제거
설치 전 시스템 내 기존 MySQL 관련 파일 및 프로세스를 완전히 제거합니다.
find / -name mysql 2>/dev/null | xargs rm -rf
오류 메시지를 필터링하기 위해 표준 에러 출력을 무시합니다.
압축 해제 및 디렉터리 정리
다운로드한 파일을 적절한 위치에 압축 해제하고 이름을 간소화합니다.
tar -zxvf mysql-5.6.31-linux-glibc2.5-x86_64.tar.gz
rm -f mysql-5.6.31-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.6.31-linux-glibc2.5-x86_64 mysql
사용자 및 그룹 설정
MySQL 서비스 전용 그룹과 사용자를 생성합니다.
groupadd mysql
useradd -r -g mysql mysql
-r 옵션은 시스템 계정으로 생성하며 로그인 셸을 할당하지 않습니다.
권한 설정
MySQL 설치 디렉터리에 대한 소유권을 변경합니다.
cd mysql
chown -R mysql:mysql .
데이터베이스 초기화
데이터 디렉터리를 생성하고 초기 스키마를 구성합니다.
./scripts/mysql_install_db --user=mysql --basedir=$(pwd) --datadir=$(pwd)/data
초기화 후 루트 권한과 데이터 디렉터리 권한을 조정합니다.
chown -R root:root .
chown -R mysql:mysql data
MySQL 서비스 시작
임시로 MySQL 서버를 구동합니다.
./support-files/mysql.server start
만약 포트 충돌 또는 기존 프로세스가 있다면, 아래 명령어로 종료 후 재시도합니다.
ps aux | grep mysql | grep -v grep | awk '{print $2}' | xargs kill -9
루트 비밀번호 설정
기본적으로 비밀번호가 없으므로 관리자 계정에 비밀번호를 지정합니다.
./bin/mysqladmin -u root password 'root'
설정 후 로컬에서 접속 테스트를 수행합니다.
./bin/mysql -h 127.0.0.1 -u root -proot
접속 성공 시 모든 루트 계정에 동일한 비밀번호를 적용하고 권한을 갱신합니다.
UPDATE mysql.user SET Password=PASSWORD('root') WHERE User='root';
FLUSH PRIVILEGES;
원격 접속 허용
기본적으로 원격 접속이 거부되므로, 외부에서도 접근 가능하도록 권한을 확장합니다.
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
FLUSH PRIVILEGES;
이 설정은 모든 IP에서 루트 계정으로 접속할 수 있도록 하며, 운영 환경에서는 보안상 주의가 필요합니다.
시스템 서비스 등록
MySQL을 시스템 부팅 시 자동 실행되도록 init 스크립트를 등록합니다.
cp support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
service mysqld restart
service mysqld status
기본 설정 파일 구성 (my.cnf)
문자셋, 테이블명 대소문자 처리, 최대 패킷 크기 등을 설정합니다.
vim /etc/my.cnf
[mysqld] 섹션 내에 다음 내용을 추가합니다.
[mysqld]
character_set_server=utf8
lower_case_table_names=1
max_allowed_packet=100M
설정 완료 후 서비스를 재시작하여 반영합니다.
service mysqld restart