웹사이트 검색

공식 Yum 리포지토리에서 MySQL 5.6을 설치하는 방법


상태: 더 이상 사용되지 않음

이 문서에서는 더 이상 지원되지 않는 CentOS 버전에 대해 설명합니다. 현재 CentOS 6을 실행하는 서버를 운영 중인 경우 지원되는 CentOS 버전으로 업그레이드하거나 마이그레이션하는 것이 좋습니다.

이유:

대신 참조:

다음 DigitalOcean 튜토리얼은 CentOS 7 서버에 MySQL을 설치하는 방법을 설명하므로 즉시 관심을 가질 수 있습니다.

  • CentOS 7에 MySQL을 설치하는 방법

제출자: Morgan Tocker, MySQL 커뮤니티 관리자 @ Oracle

소개

2013년 10월 MySQL 개발 팀은 공식적으로 yum 리포지토리 지원을 시작했습니다. 즉, 소스에서 직접 설치된 가장 최신의 MySQL 버전을 확보할 수 있습니다!

이 가이드에서는 새로 설치한 Centos 6에 MySQL 5.6을 설치한 다음 몇 가지 추가 작업을 적용하여 DigitalOcean의 구성을 최적화합니다.

MySQL 5.6의 변경 사항에 익숙하지 않은 경우 MySQL 5.6의 새로운 기능부터 시작하는 것이 좋습니다. 매우 유용한 기능이 많이 있습니다.

서버 선택

오늘은 4G RAM과 60GB SSD가 포함된 $40/월 서버를 선택하겠습니다. 하지만 응용 프로그램의 요구 사항에 따라 다른 크기를 자유롭게 선택할 수 있습니다. MySQL은 매우 적은 양의 RAM이 있는 시스템에 설치할 수 있을 뿐만 아니라 최대 100GB까지 확장할 수 있습니다. 다른 서버 크기를 선택한 경우 아래 권장 구성 조언을 조정하십시오.

공식 리포지토리는 32비트 및 64비트 Enterprise Linux 6과 Fedora 18 및 19를 모두 지원합니다. CentOS는 __C__ommunity __Ent__erprise __O__perating __S__시스템이며 이 목적에 적합합니다.

MySQL 설치

yum 리포지토리 파일은 MySQL의 개발자 웹 사이트에서 다운로드해야 합니다. 일단 설치되면 간단한 yum 업데이트를 통해 보안 업데이트를 포함하여 MySQL 5.6의 최신 포인트 릴리스에서 실행 중인지 확인할 수 있습니다. Yum은 또한 모든 종속성도 설치되도록 하므로 설치 프로세스가 조금 더 간단해집니다.

시작하려면 http://dev.mysql.com/downloads/repo/로 이동하여 Red Hat Enterprise Linux 6/Oracle Linux 6용 다운로드 링크를 클릭하십시오.

그런 다음 'No thanks, just start my download' 아래 링크를 복사합니다.

서버에 로그인한 다음 이 파일을 다운로드합니다. 다음은 예시 URL입니다. 사용 가능한 리포지토리의 최신 버전이 없는지 다시 확인하고 싶을 수 있습니다.

wget http://dev.mysql.com/get/mysql-community-release-el6-3.noarch.rpm/from/http://repo.mysql.com/

로컬 파일에서 저장소를 설치합니다.

sudo yum localinstall mysql-community-release-el6-*.noarch.rpm

이제 서버에 공식 리포지토리가 설치되었지만 아직 설치된 소프트웨어는 없습니다. 리포지토리에는 MySQL Server, MySQL Workbench 관리 도구 및 ODBC 드라이버가 포함되어 있습니다. MySQL 서버를 설치합시다:

sudo yum install mysql-community-server

MySQL 시작:

sudo service mysqld start

재부팅 시 자동으로 시작되도록 MySQL 구성:

sudo chkconfig mysqld on
chkconfig --list mysqld

그게 다야. 준비가 완료되었습니다!

마무리하기

MySQL 개발 팀은 MySQL이 기본적으로 더 잘 조정되도록 하기 위해 많은 노력을 기울였으며 5.6에서는 구성이 거의 필요하지 않습니다. 하지만 [mysqld] 제목 그룹 아래의 /etc/my.cnf에 추가할 수 있는 조정하고 싶은 몇 가지 사항이 있을 것입니다.

sudo vim /etc/my.cnf

  • innodb_buffer_pool_size를 시스템 메모리의 50-80%로 설정하는 것이 좋습니다. 제가 선택한 서버의 경우 4GB의 50% = 2GB입니다. 이를 통해 MySQL은 더 많은 데이터(기본값은 128M)를 캐시할 수 있으며 성능을 크게 향상시킬 수 있습니다.\n
  • MySQL은 크래시 복구를 제공하는 데 사용되는 기능인 아주 작은 트랜잭션 로그를 기본으로 가지고 있습니다. 개발 중에는 작은 로그 파일이 공간을 절약하는 데 유용할 수 있지만 프로덕션에서는 더 많은 쓰기가 백그라운드에서 대기할 수 있도록 로그 파일을 늘리는 것이 좋습니다. 설정은 innodb_log_file_size이며 권장 값 범위는 128M에서 4G 사이입니다.
  • SSD를 사용할 때 순차 IO는 임의 IO보다 빠르지 않습니다. 즉, MySQL이 수행하는 최적화 중 하나를 비활성화하고 약간의 CPU를 절약할 수 있다고 MySQL에 알릴 수 있습니다. 설정은 innodb_flush_neighbors=0입니다.
  • 기본적으로 MySQL은 전원이 꺼지더라도 데이터를 잃지 않도록 특별히 주의합니다. 이것은 성능 비용으로 발생하며 많은 클라우드 환경에서 사용자는 대신 정전 시 몇 초 동안 데이터 손실을 허용하도록 선택했습니다. 변경할 설정은 innodb_flush_log_at_trx_commit=2입니다.\n
  • UTF-8은 MySQL에 국제 문자를 저장하기 위한 더 나은 기본값입니다. character-set-server=utf8mb4collation-server=utf8mb4_general_ci를 설정하여 변경할 수 있습니다. 개별 데이터베이스, 테이블 및 열은 필요한 경우 여전히 이를 덮어쓸 수 있습니다.\n
  • 많은 시스템 관리자는 timezone=GMT로 수행할 수 있는 서버의 시간대를 GMT로 설정할 것을 권장합니다.\n
  • 이전 버전과의 호환성을 보장하기 위해 MySQL은 기본적으로 부정확하고 범위를 벗어난 값을 허용합니다. 애플리케이션이 이 레거시 MySQL 동작에 의존하지 않는 한 더 엄격한 새 SQL_MODE 옵션을 활성화하는 것이 좋습니다.\n

*전체적으로 다음과 같은 변경 사항이 있습니다.

innodb_buffer_pool_size=2G
innodb_log_file_size=256M
innodb_flush_neighbors=0
innodb_flush_log_at_trx_commit=2

# Default to UTF-8 for text columns
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci

# Set the default timezone to GMT.
# This is a common recommended practice, but can also remove this line
# If your date/time values appear incorrect.
timezone=GMT

# This configuration item is optional:
# It makes MySQL more strict and rejects invalid values.
# You may need to remove this line for legacy applications.
sql-mode="STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ONLY_FULL_GROUP_BY"

추가 자료

이로써 공식 yum 저장소를 사용한 MySQL 5.6의 기본 설치가 완료되었습니다. MySQL 팀은 여러분의 피드백을 듣고 싶습니다. 문제가 발생하거나 제안 사항이 있는 경우 http://forums.mysql.com/list.php?11을 방문하십시오.

또한 설치 후 MySQL 5.6에서 구성할 내용에 대한 고급 버전은 내 블로그에서 확인할 수 있습니다. 하지만 안심하세요. 이 문서의 단계를 따랐다면 95%는 달성한 것입니다!