Loading...
MySQL 9.5 Reference Manual 9.5의 2.5.4 Installing MySQL on Linux Using RPM Packages from Oracle의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
RPM 기반 Linux 배포판에 MySQL을 설치하는 권장 방법은 Oracle에서 제공하는 RPM 패키지를 사용하는 것입니다. MySQL Community Edition의 경우, 이를 얻을 수 있는 소스는 두 가지가 있습니다:
MySQL 소프트웨어 리포지터리에서:
MySQL Yum 리포지터리(자세한 내용은
Section 2.5.1, “Installing MySQL on Linux Using the MySQL Yum Repository”
를 참조하십시오).
MySQL SLES 리포지터리(자세한 내용은
Section 2.5.3, “Using the MySQL SLES Repository”
를 참조하십시오).
MySQL Developer Zone의
Download MySQL Community Server 페이지에서.
Note
MySQL의 RPM 배포판은 다른 벤더들에 의해서도 제공됩니다. 이들은 Oracle에서 빌드한 것과 기능, 성능, 규약(통신 설정 포함)에서 다를 수 있으며, 이 매뉴얼의 설치 지침이 이들 배포판에는 반드시 적용되는 것은 아닙니다. 대신, 해당 벤더의 지침을 참조해야 합니다.
Table 2.10 RPM Packages for MySQL Community Edition
| Package Name | Summary |
|---|---|
mysql-community-client | MySQL 클라이언트 애플리케이션 및 도구 |
mysql-community-client-plugins | MySQL 클라이언트 애플리케이션용 공유 플러그인 |
mysql-community-common | 서버 및 클라이언트 라이브러리용 공통 파일 |
mysql-community-devel | MySQL 데이터베이스 클라이언트 애플리케이션용 개발 헤더 파일 및 라이브러리 |
mysql-community-embedded-compat | 버전 18 라이브러리를 사용하는 애플리케이션과의 호환성을 가진 임베디드 라이브러리 형태의 MySQL 서버 |
mysql-community-icu-data-files | MySQL 정규식에 필요한 ICU 데이터 파일의 MySQL 패키징 |
mysql-community-libs | MySQL 데이터베이스 클라이언트 애플리케이션용 공유 라이브러리 |
mysql-community-libs-compat | 이전 MySQL 설치용 공유 호환성 라이브러리. 해당 플랫폼에서 이전 MySQL 버전이 지원되는 경우에만 존재함 |
mysql-community-server | 데이터베이스 서버 및 관련 도구 |
mysql-community-server-debug | 디버그 서버 및 플러그인 바이너리 |
mysql-community-test | MySQL 서버용 테스트 슈트 |
mysql-community | 소스 코드 RPM은 선택한 OS에 따라<br> mysql-community-9.5.0-1.el7.src.rpm과 유사한 형태임 |
| Additional *debuginfo* RPMs | 여러 개의 debuginfo 패키지가 있음:<br> mysql-community-client-debuginfo,<br> mysql-community-libs-debuginfo<br> mysql-community-server-debug-debuginfo<br> mysql-community-server-debuginfo, 그리고<br> mysql-community-test-debuginfo. |
| Package Name | Summary |
|---|
Table 2.11 RPM Packages for the MySQL Enterprise Edition
| Package Name | Summary |
|---|---|
mysql-commercial-backup | MySQL Enterprise Backup |
mysql-commercial-client | MySQL 클라이언트 애플리케이션 및 도구 |
mysql-commercial-client-plugins | MySQL 클라이언트 애플리케이션용 공유 플러그인 |
mysql-commercial-common | 서버 및 클라이언트 라이브러리용 공통 파일 |
mysql-commercial-devel | MySQL 데이터베이스 클라이언트 애플리케이션용 개발 헤더 파일 및 라이브러리 |
mysql-commercial-embedded-compat | 버전 18 라이브러리를 사용하는 애플리케이션과의 호환성을 가진 임베디드 라이브러리 형태의 MySQL 서버 |
mysql-commercial-icu-data-files | MySQL 정규식에 필요한 ICU 데이터 파일의 MySQL 패키징 |
mysql-commercial-libs | MySQL 데이터베이스 클라이언트 애플리케이션용 공유 라이브러리 |
mysql-commercial-libs-compat | 이전 MySQL 설치용 공유 호환성 라이브러리. 해당 플랫폼에서 이전 MySQL 버전이 지원되는 경우에만 존재함. 라이브러리의 버전은 사용 중인 배포판이 기본으로 설치하는 라이브러리의 버전과 일치함. |
mysql-commercial-server | 데이터베이스 서버 및 관련 도구 |
mysql-commercial-test | MySQL 서버용 테스트 슈트 |
| Additional *debuginfo* RPMs | 여러 개의 debuginfo 패키지가 있음:<br> mysql-commercial-client-debuginfo,<br> mysql-commercial-libs-debuginfo<br> mysql-commercial-server-debug-debuginfo<br> mysql-commercial-server-debuginfo, 그리고<br> mysql-commercial-test-debuginfo. |
| Package Name | Summary |
|---|
RPM의 전체 이름은 다음과 같은 형식을 가집니다:
1packagename-version-distribution-arch.rpm
distribution 및
arch 값은 해당 패키지가 어떤 Linux 배포판과 어떤 프로세서 타입을 대상으로 빌드되었는지를 나타냅니다. distribution 식별자 목록은 아래 표를 참조하십시오:
Table 2.12 MySQL Linux RPM Package Distribution Identifiers
| Distribution Value | Intended Use |
|---|---|
el {version} (여기서<br> _{version}_은 el8과 같은 주요 Enterprise<br> Linux 버전) | EL6 (8.0), EL7, EL8, EL9, EL10 기반 플랫폼(예: 해당 버전의 Oracle Linux, Red Hat Enterprise Linux, CentOS) |
fc {version} (여기서<br> _{version}_은 fc37과 같은 주요 Fedora<br> 버전) | Fedora 41 및 42 |
sl5 | SUSE Linux Enterprise Server 15 |
RPM 패키지에 포함된 모든 파일을 보려면(예: mysql-community-server),
다음 명령을 사용합니다:
1$> rpm -qpl mysql-community-server-version-distribution-arch.rpm
이 절의 나머지 부분에 대한 설명은
MySQL
repository를 통해서가 아닌, Oracle에서 직접
다운로드한 RPM 패키지를 사용하여 설치를 수행하는
경우에만 적용됩니다.
일부 패키지 간에는 의존성 관계가 존재합니다. 많은 패키지를 설치하려는 경우, 위에 열거된 모든 RPM 패키지를 포함하는 RPM 번들 tar 파일을 다운로드하는 것이 좋습니다. 그러면 각 패키지를 개별적으로 다운로드할 필요가 없습니다.
대부분의 경우, 기능적인 표준 MySQL 설치를 위해서는
mysql-community-server,
mysql-community-client,
mysql-community-client-plugins,
mysql-community-libs,
mysql-community-icu-data-files,
mysql-community-common,
mysql-community-libs-compat
패키지를 설치해야 합니다.
이러한 표준, 기본 설치를 수행하려면, 해당 패키지 모두(그리고 가능하면 유사한 이름을 가진 다른 RPM 패키지는 없는) 폴더로 이동한 뒤, 다음 명령을 실행합니다:
1$> sudo yum install mysql-community-{server,client,client-plugins,icu-data-files,common,libs}-*
SLES의 경우 yum을 zypper로, Fedora의 경우 dnf로 교체하십시오.
가능한 한 yum과 같은 고수준 패키지 관리 도구를 사용하여 패키지를 설치하는 것이 훨씬 바람직합니다. 직접 rpm 명령을 사용하기를 원하는 사용자는 yum install 명령을 rpm -Uvh 명령으로 대체할 수 있습니다. 그러나 rpm -Uvh를 사용하는 경우 설치 과정 중 발생할 수 있는 의존성 문제 때문에 설치 실패 가능성이 더 커집니다.
클라이언트 프로그램만 설치하려면 설치할 패키지 목록에서
mysql-community-server는 제외할 수 있습니다. 다음 명령을 실행하십시오:
1$> sudo yum install mysql-community-{client,client-plugins,common,libs}-*
SLES의 경우 yum을 zypper로, Fedora의 경우 dnf로 교체하십시오.
RPM 패키지를 사용한 MySQL의 표준 설치는 아래 표에 표시된 대로 시스템 디렉터리 하위에 파일 및 리소스를 생성합니다.
Table 2.13 MySQL Installation Layout for Linux RPM Packages from the MySQL Developer Zone
| Files or Resources | Location |
|---|---|
| 클라이언트 프로그램 및 스크립트 | /usr/bin |
| mysqld 서버 | /usr/sbin |
| 설정 파일 | /etc/my.cnf |
| 데이터 디렉터리 | /var/lib/mysql |
| 에러 로그 파일 | RHEL, Oracle Linux, CentOS, Fedora 플랫폼:<br>/var/log/mysqld.log<br>SLES: /var/log/mysql/mysqld.log |
secure_file_priv의 값 | /var/lib/mysql-files |
| System V init 스크립트 | RHEL, Oracle Linux, CentOS, Fedora 플랫폼:<br>/etc/init.d/mysqld<br>SLES: /etc/init.d/mysql |
| Systemd 서비스 | RHEL, Oracle Linux, CentOS, Fedora 플랫폼:<br>mysqld<br>SLES: mysql |
| Pid 파일 | /var/run/mysql/mysqld.pid |
| 소켓 | /var/lib/mysql/mysql.sock |
| 키링 디렉터리 | /var/lib/mysql-keyring |
| Unix 매뉴얼 페이지 | /usr/share/man |
| 인클루드(헤더) 파일 | /usr/include/mysql |
| 라이브러리 | /usr/lib/mysql |
| 기타 지원 파일(예: 에러 메시지, 문자 집합 파일) | /usr/share/mysql |
| Files or Resources | Location |
|---|
설치는 또한 시스템에 mysql이라는 사용자와
mysql이라는 그룹을 생성합니다.
참고
mysql 사용자는 useradd 명령의
-r 및 -s /bin/false
옵션을 사용하여 생성되므로, 서버 호스트에 로그인 권한이 없습니다(자세한 내용은
Creating the mysql User and Group
을 참조하십시오). OS에서 mysql 사용자로 전환하려면
su 명령에 --shell=/bin/bash 옵션을 사용하십시오:
1$> su - mysql --shell=/bin/bash
이전 버전의 MySQL을 오래된 패키지로 설치한 경우
/usr/my.cnf라는 설정 파일이 생성되어 있을 수 있습니다. 해당 파일의 내용을 검토한 후 필요한 설정을
/etc/my.cnf 파일로 옮기고,
/usr/my.cnf는 삭제할 것을 강력히 권장합니다.
MySQL은 설치 과정이 끝나도 자동으로 시작되지 않습니다. Red Hat Enterprise Linux, Oracle Linux, CentOS, Fedora 시스템에서는 다음 명령을 사용하여 MySQL을 시작하십시오:
1$> systemctl start mysqld
SLES 시스템에서는 명령은 같지만 서비스 이름이 다릅니다:
1$> systemctl start mysql
운영 체제가 systemd를 사용한다면, MySQL 서버 서비스 관리를 위해
systemctl(또는 인자가 반대로인 service)의
stop, start, status, restart
와 같은 표준 명령을 사용해야 합니다.
mysqld 서비스는 기본적으로 enabled 상태이며, 시스템 재부팅 시 자동으로 시작됩니다.
systemd 플랫폼에서는 일부 동작이 다를 수 있습니다. 예를 들어 데이터 디렉터리의 위치를 변경하면 문제가 발생할 수 있습니다. 추가 정보는
Section 2.5.9, “Managing MySQL Server with systemd”
을 참조하십시오.
RPM 및 DEB 패키지를 사용한 업그레이드 설치 동안, 업그레이드 시점에 MySQL 서버가 실행 중이면 MySQL 서버는 중지되고, 업그레이드가 수행된 후 다시 시작됩니다. 예외적으로, 업그레이드 중 에디션이 변경되는 경우(예: community에서 commercial로 또는 그 반대), MySQL 서버는 다시 시작되지 않습니다.
서버를 처음 시작할 때, 서버의 데이터 디렉터리가 비어 있다고 가정하면 다음이 수행됩니다:
서버가 초기화됩니다.
데이터 디렉터리 내에 SSL 인증서 및 키 파일이 생성됩니다.
validate_password
가 설치되고 enabled 상태가 됩니다.
슈퍼유저 계정 'root'@'localhost'가 생성됩니다. 슈퍼유저의 패스워드가 설정되어 에러 로그 파일에 저장됩니다. 이를 확인하려면 RHEL, Oracle Linux, CentOS, Fedora 시스템에서는 다음 명령을 사용하십시오:
1$> sudo grep 'temporary password' /var/log/mysqld.log
SLES 시스템에서는 다음 명령을 사용하십시오:
1$> sudo grep 'temporary password' /var/log/mysql/mysqld.log
다음 단계는 생성된 임시 패스워드로 로그인한 뒤, 슈퍼유저 계정에 대해 사용자 정의 패스워드를 설정하는 것입니다:
1$> mysql -uroot -p
1mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
Note
validate_password
는 기본적으로 설치됩니다. validate_password에서 구현하는 기본 패스워드 정책에 따르면, 패스워드에는 최소 한 개의 대문자, 한 개의 소문자, 한 개의 숫자, 한 개의 특수 문자가 포함되어야 하며, 전체 패스워드 길이는 최소 8자 이상이어야 합니다.
설치 중 문제가 발생한 경우, /var/log/mysqld.log 에러 로그 파일에서 디버그 정보를 확인할 수 있습니다.
일부 Linux 배포판에서는
mysqld에 사용 가능한 파일 디스크립터 수에 대한 제한을 늘려야 할 수 있습니다.
Section B.3.2.16, “File Not Found and Similar Errors”
을 참조하십시오.
Installing Client Libraries from Multiple MySQL Versions.
여러 버전의 클라이언트 라이브러리를 설치하는 것도 가능합니다. 예를 들어, 이전 라이브러리에 링크된 오래된 애플리케이션과의 호환성을 유지하려는 경우입니다. 이전 클라이언트 라이브러리를 설치하려면 rpm에 --oldpackage 옵션을 사용하십시오. 예를 들어, MySQL 8.0의 libmysqlclient.21이 있는 EL6 시스템에
mysql-community-libs-5.5를 설치하려면 다음과 같은 명령을 사용합니다:
1$> rpm --oldpackage -ivh mysql-community-libs-5.5.50-2.el6.x86_64.rpm
Debug Package.
debug 패키지로 컴파일된 MySQL Server의 특별한 변형이 서버 RPM 패키지에 포함되어 있습니다. 이 변형은 디버깅과 메모리 할당 검사를 수행하고, 서버가 실행 중일 때 트레이스 파일을 생성합니다. 해당 디버그 버전을 사용하려면, 서비스로 시작하거나 /usr/sbin/mysqld로 시작하는 대신
/usr/sbin/mysqld-debug로 MySQL을 시작하십시오.
사용 가능한 디버그 옵션에 대해서는
Section 7.9.4, “The DBUG Package”
를 참조하십시오.
Note
기본 플러그인 디렉터리는
/usr/lib64/mysql/plugin/debug이며,
plugin_dir로 설정을 변경할 수 있습니다.
Rebuilding RPMs from source SRPMs.
MySQL용 소스 코드 SRPM 패키지는 다운로드 가능합니다. 이들은 표준 rpmbuild 도구 체인을 사용하여 MySQL RPM을 재빌드하는 데 그대로 사용할 수 있습니다.
2.5.3 Using the MySQL SLES Repository
2.5.5 Installing MySQL on Linux Using Debian Packages from Oracle