웹사이트 검색

CentOS 7에 MySQL을 설치하는 방법


소개

LEMP(Linux, Nginx, MySQL/MariaDB, PHP/Python/Perl) 스택. 관계형 데이터베이스와 SQL(Structured Query Language)을 사용하여 데이터를 관리합니다.

CentOS 7은 원래 MySQL 개발자가 관리하고 MySQL을 대체하도록 설계된 MySQL의 포크인 MariaDB를 선호합니다. CentOS 7에서 yum install mysql을 실행하면 MySQL이 아닌 MariaDB가 설치됩니다. MySQL과 MariaDB에 대해 궁금한 점이 있다면 Centos 7에 MariaDB를 설치하는 방법 가이드를 참조하세요.

이 튜토리얼에서는 CentOS 7 서버에 MySQL 버전 8을 설치하는 방법을 설명합니다.

전제 조건

이 자습서를 따르려면 다음이 필요합니다.

  • sudo 권한이 있는 루트가 아닌 사용자가 있는 CentOS 7. CentOS 7 가이드로 초기 서버 설정에서 이러한 권한을 가진 사용자를 설정하는 방법에 대해 자세히 알아볼 수 있습니다.

1단계 - MySQL 설치

소개에서 언급했듯이 MySQL을 설치하는 Yum 명령은 실제로 MariaDB를 설치합니다. MySQL을 설치하려면 MySQL용 패키지를 제공하는 MySQL 커뮤니티 Yum Repository를 방문해야 합니다.

웹 브라우저에서 다음을 방문하십시오.

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

눈에 띄는 다운로드 링크는 파일로 직접 연결되지 않습니다. 대신 로그인하거나 계정에 가입하라는 초대를 받는 후속 페이지로 연결됩니다. 계정을 만들지 않으려면 "아니요, 다운로드를 시작하세요\라는 텍스트를 찾은 다음 마우스 오른쪽 버튼을 클릭하고 링크 위치를 복사하거나 아래 명령에서 버전 번호를 편집할 수 있습니다.

원하는 버전을 찾아 필요에 따라 아래 링크에서 업데이트합니다.

  1. curl -sSLO https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm

rpm 파일이 저장되면 md5sum을 실행하고 사이트에 나열된 해당 MD5 값과 비교하여 다운로드의 무결성을 확인합니다.

  1. md5sum mysql80-community-release-el7-5.noarch.rpm
Output
e2bd920ba15cd3d651c1547661c60c7c mysql80-community-release-el7-5.noarch.rpm

이 출력을 사이트의 적절한 MD5 값과 비교하십시오.

이제 파일이 손상되거나 변경되지 않았음을 확인했으므로 패키지를 설치합니다.

  1. sudo rpm -ivh mysql57-community-release-el7-9.noarch.rpm

이렇게 하면 두 개의 새로운 MySQL yum 리포지토리가 추가되며 이제 이를 사용하여 MySQL 서버를 설치할 수 있습니다.

  1. sudo yum install mysql-server

계속하려면 y를 눌러 확인하십시오. 방금 패키지를 추가했으므로 패키지의 GPG 키를 수락하라는 메시지도 표시됩니다. y를 눌러 다운로드하고 설치를 완료합니다.

2단계 - MySQL 시작하기

다음 명령으로 데몬을 시작합니다.

  1. sudo systemctl start mysqld

systemctl은 모든 서비스 관리 명령의 결과를 표시하지 않으므로 성공했는지 확인하기 위해 다음 명령을 사용합니다.

  1. sudo systemctl status mysqld

MySQL이 성공적으로 시작되면 출력에 Active: active (running)가 포함되어야 하며 마지막 줄은 다음과 같아야 합니다.

  1. Dec 01 19:02:20 centos-512mb-sfo2-02 systemd[1]: Started MySQL Server.

참고: MySQL은 설치 시 부팅 시 시작되도록 자동으로 활성화됩니다. sudo systemctl disable mysqld를 사용하여 기본 동작을 변경할 수 있습니다.

설치 프로세스 중에 MySQL 루트 사용자에 대한 임시 암호가 생성됩니다. 다음 명령을 사용하여 mysqld.log에서 찾으십시오.

  1. sudo grep 'temporary password' /var/log/mysqld.log
Output
2022-01-24T19:54:46.313728Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: mqRfBU_3Xk>r

설치를 보호하기 위해 다음 단계에서 필요한 암호와 암호를 변경해야 하는 위치를 기록해 두십시오. 기본 비밀번호 정책은 대문자, 소문자, 숫자 및 특수 문자를 포함하여 12자를 요구합니다.

3단계 - MySQL 구성

MySQL에는 원격 루트 로그인 및 샘플 사용자와 같은 보안 수준이 낮은 기본 옵션을 변경하는 보안 스크립트가 포함되어 있습니다.

보안 스크립트를 실행하려면 이 명령을 사용하십시오.

  1. sudo mysql_secure_installation

이렇게 하면 기본 루트 암호를 묻는 메시지가 나타납니다. 입력하자마자 변경해야합니다.

Output
The existing password for the user account root has expired. Please set a new password. New password:

하나 이상의 대문자, 소문자, 숫자 및 특수 문자를 포함하는 새로운 12자리 암호를 입력하십시오. 메시지가 표시되면 다시 입력하십시오.

새 비밀번호의 강도에 대한 피드백을 받은 후 비밀번호를 다시 변경하라는 메시지가 즉시 표시됩니다. 방금 했으므로 자신 있게 아니오라고 말할 수 있습니다.

Output
Estimated strength of the password: 100 Change the password for root ? (Press y|Y for Yes, any other key for No) :

암호를 다시 변경하라는 프롬프트를 거부한 후 Y를 누른 다음 ENTER를 눌러 모든 후속 질문에 대해 익명 사용자를 제거하고 원격 루트 로그인을 허용하지 않습니다. 테스트 데이터베이스와 액세스를 제거하고 권한 테이블을 다시 로드하십시오.

이제 설치를 확보했으므로 테스트해 보겠습니다.

4단계 - MySQL 테스트

관리 명령을 실행할 수 있는 클라이언트인 mysqladmin 도구에 연결하여 설치를 확인하고 관련 정보를 얻을 수 있습니다. 다음 명령을 사용하여 루트(-u root)로 MySQL에 연결하고 암호를 묻는 메시지를 표시하고(-p) 버전을 반환합니다.

  1. mysqladmin -u root -p version

다음과 유사한 출력이 표시되어야 합니다.

mysqladmin  Ver 8.0.28 for Linux on x86_64 (MySQL Community Server - GPL)
Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Server version		8.0.28
Protocol version	10
Connection		Localhost via UNIX socket
UNIX socket		/var/lib/mysql/mysql.sock
Uptime:			3 min 2 sec

Threads: 2  Questions: 14  Slow queries: 0  Opens: 133  Flush tables: 3  Open tables: 49  Queries per second avg: 0.076

설치가 성공적으로 완료되었음을 나타냅니다.

결론

이 튜토리얼에서는 CentOS 7 서버에 MySQL을 설치하고 보호했습니다. MySQL 사용에 대해 자세히 알아보려면 몇 가지 추가 보안 조치 구현에 대한 이 가이드를 참조하세요.