우분투 20.04에서 Mysql 5.7 설치 가이드 (How to Install MySQL 5.7 on Ubuntu 20)
목차
우분투 20에서는 기본 패키지로 MySQL 8.0이 제공됩니다. 이 튜토리얼에서는 우분투 20 혹은 그 이상의 버전에서 MySQL 5.7 패키지를 추가하는 방법에 대해 설명 합니다.
사전 요구 사항
우분투를 처음 설치 한 경우 또는 wget등의 패키지가 없는 경우를 대비 하여 다음과 같이 wget패키지를 설치 합니다.
$ sudo apt-get update -y
$ sudo apt-get install -y wget
MySQL 5.7 APT 저장소 추가
우분투 20에 MySQL 5.7을 설치하기 위해서는 APT 저장소를 추가해야 합니다. 다음 명령을 사용하여 MySQL 저장소 파일을 다운로드 합니다.
$ wget https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb
다운로드가 완료되면 저장소를 설치 합니다.
$ sudo dpkg -i mysql-apt-config_0.8.12-1_all.deb
프롬프트에서 Ubuntu Bionic을 선택 합니다. 그 다음 MySQL 서버 및 클러스터 옵션을 선택후 mysql-5.7을 선택한 다음 ok를 선택 합니다. 완료되면 APT 저장소를 업데이트 합니다.
$ sudo apt update
서명 오류가 발생하는 경우 누락된 gpg키를 추가 해 주세요.(서명 오류가 발생하지 않는 경우 이 단계가 필요 없습니다.)
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
다음 명령어를 사용하여 MySQL 5.7 저장소가 성공적으로 설치되었는지 확인 합니다.
$ sudo apt-cache policy mysql-server
목록 맨 아래에 MySQL 5.7저장소가 표시되어야 합니다.
mysql-server:
Installed: 5.7.40-1ubuntu18.04
Candidate: 8.0.30-0ubuntu0.20.04.2
Version table:
8.0.30-0ubuntu0.20.04.2 500
500 http://jp.clouds.archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages
500 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages
8.0.19-0ubuntu5 500
500 http://jp.clouds.archive.ubuntu.com/ubuntu focal/main amd64 Packages
*** 5.7.40-1ubuntu18.04 500
500 http://repo.mysql.com/apt/ubuntu bionic/mysql-5.7 amd64 Packages
100 /var/lib/dpkg/status
MySQL 5.7 설치
시스템에 MySQL 5.7 저장소가 있으면 다음을 사용하여 설치 할 수 있습니다.
$ sudo apt install -f mysql-client=5.7* mysql-community-server=5.7* mysql-server=5.7*
Y키를 눌러 설치를 시작하고 메세지가 표시되면 루트 암호를 설정 합니다.
Reading package lists... Done
Building dependency tree
Reading state information... Done
Selected version '5.7.37-1ubuntu18.04' (MySQL:repo.mysql.com [amd64]) for 'mysql-client'
Selected version '5.7.37-1ubuntu18.04' (MySQL:repo.mysql.com [amd64]) for 'mysql-community-server'
Selected version '5.7.37-1ubuntu18.04' (MySQL:repo.mysql.com [amd64]) for 'mysql-server'
The following additional packages will be installed:
libmecab2 libtinfo5 mysql-common mysql-community-client
The following NEW packages will be installed:
libmecab2 libtinfo5 mysql-client mysql-common mysql-community-client mysql-community-server mysql-server
0 upgraded, 7 newly installed, 0 to remove and 1 not upgraded.
Need to get 51.6 MB of archives.
After this operation, 315 MB of additional disk space will be used.
Do you want to continue? [Y/n]
MySQL Secure Installation
프로덕션 서버에서 MySQL 5.7을 사용하기 전에는 먼저 보안을 유지 할 필요가 있습니다. 다음 명령어로 MySQL 서버의 보안을 유지 하세요.
$ sudo mysql_secure_installation
MySQL 버전 확인
정상적으로 MySQL 5.7을 설치 했는지 확인 합니다. 먼저 이전에 설정한 루트 비밀번호로 MySQL에 접속합니다.
$ mysql -u root -p
그런 다음 다음 명령을 실행 합니다.
SELECT VERSION();
설치된 MySQL 버전이 표시되어야 합니다.
+-----------+
| VERSION() |
+-----------+
| 5.7.37 |
+-----------+
1 row in set (0.00 sec)
MySQL 외부 접속 설정
MySQL을 외부에서 접속하기 위해서 MySQL 설정파일(/etc/mysql/mysql.conf.d/mysqld.cnf)을 엽니다.
$ sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address항목을 찾아 127.0.0.1로 되어 있는 주소를 모든 IP주소에서 접속 할 수 있는 0.0.0.0으로 변경 합니다.
bind-address = 0.0.0.0
우분투 방화벽에서 3306포트를 열어 줍니다.
$ sudo ufw allow 3306
만약 특정 IP에서의 접속만 허용 할 경우 다음과 같이 방화벽을 열어 줄 수 있습니다. 이 경우 xxx.xxx.xxx.xxx에서만 MySQL 서버에 접근 가능 합니다.
$ sudo ufw allow from xxx.xxx.xxx.xxx to any port 3306
또는, 다음과 같이 특정 IP대역을 열어 줄 수 있습니다. 이경우 xxx.xxx.xxx.1~255까지의 IP에서 접속이 가능 합니다.
$ sudo ufw allow from xxx.xxx.xxx.0/24 to any port 3306
참조
안정적이고 저렴한 가상 서버(VPS) 안내
안정적인 서버 호스팅을 찾고 계신가요? 지금 Vultr 호스팅을 한번 이용 해 보세요. 지금 보고 계신 HaruLogs 사이트도 Vultr에서 VPS 호스팅 하고 있습니다. 한국, 일본, 미국등 다양한 국가에 클릭 몇번으로 안정적이고 저렴한 VPS를 운영 할 수 있습니다.
아래 배너를 통해 회원 가입을 하시면 100달러의 무료 크레딧을 받을 수 있습니다. 100달러의 무료 크레딧은 Vultr의 최소 사양 VPS를 20대 동시 운영가능한 크레딧입니다.
Vultr 서비스 요약
- VPS
- 인스턴스
- AMD 또는 Intel High Performance 인스턴스 최저 $6 - 1vCPU, 1GB Memory, 2TB Bandwidth, 25GB NVMe
- 엣지
- 인스턴스
- Block Storage
- Object Storage (AWS S3 호환)
- Firewall
- Network
- Load Balancers
- Kubernetes
- Databases