AWS

AWS Linux 서버에 MySQL 설치 및 접속하기

0C 2024. 8. 1. 00:03

오늘은 AWS EC2 (Amazon Linux 2023) 에 MySQL 설치하고 접속해보았다. 

 

 


AWS EC2 (Amazon Linux 2023) 에 MySQL 설치하기

 

  • PuTTY 접속

  • MySQL 관련 패키지 검색
dnf search mysql

 

  • 시스템의 패키지 업데이트
sudo dnf update

 

  • RPM 파일 다운로드
sudo wget https://dev.mysql.com/get/mysql80-community-release-el9-4.noarch.rpm

 

참고

RPM 파일이란?

리눅스 운영체제에 설치 패키지를 저장하는데 사용되는 Red Hat Package Manager 파일이다.

RPM 파일은 파일을 한 곳에서 패키지화하므로 소프트웨어를 배포, 설치, 업그레이드 및 제거할 수 있도록 제공한다.

 

  • GPG 퍼블릭 키 설정
sudo dnf install mysql80-community-release-el9-4.noarch.rpm -y

 

참고

GPG (GNU Privacy Guard) 란?

개인정보 보호 및 데이터 암호화를 위한 오픈 소스 소스트웨어. PGP(Pretty Good Privacy) 를 기반으로 만들어졌다.

GPG 키는 디지털 서명, 암호화, 소프트웨어 패키지의 무결성 검증 등에 사용되며,

오픈 소스 소프트웨어의 개발자가 GPG 키를 사용하여 소프트웨어 패키지에 서명하고 사용자는 키를 사용하여 다운로드한 소프트웨어가 원본임을 확인할 수 있다.

  • MySQL-Client 설치
sudo dnf install mysql-community-client -y

  • MySQL-Server 설치
sudo dnf install mysql-community-server -y

 

  • 설치 확인 
mysql -V

 

Linux 서버에 MySQL 실행하기

  • MySQL 서버 시작
sudo systemctl start mysqld

 

  • MySQL 서비스(mysqld)를 시스템 부팅 시 자동으로 시작되도록 설정
sudo systemctl enable mysqld
  • MySQL 서비스(mysqld)를 시스템 부팅 시 자동으로 시작되도록 설정하고 현재 세션에서 바로 시작
sudo systemctl enable --now mysqld
  • MySQL 데이터베이스 서버의 현재 상태 확인 
systemctl status mysqld

 

  • Shift + : + q

Linux 서버에 MySQL 계정 비밀번호 변경

  • 임시 비밀번호 받기
    • MySQL 은 초기에 Root 계정만 존재한다. 따라서 처음 접속시 비밀번호를 변경해야 한다.
sudo grep temporary password /var/log/mysqld.log

  • root 계정으로 접속하기 
mysql -u root -p + 임시 비밀번호 입력

 

  • 비밀번호 변경 
    • 비밀번호는 8자 이상, 대문자, 소문자, 숫자, 특수문자 중 세가지 이상의 조합 사용해야 한다.
 ALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '변경할 비밀번호';
  • 변경된 비밀번호 로 반영 
FLUSH PRIVILEGES;

Linux 서버에 MySQL 계정 생성 및 권한 부여

  • 계정 생성
    • ‘%’ : 어떤 호스트에서든 접속이 가능하다는 의미
create user '계정명'@'%' identified by '비밀번호';

 

  • 해당 계정에 대해 권한 부여
    • 모든 권한 부여 : GRANT ALL PRIVILEGES ON *.* to '계정명'@'%';
    • 특정 DB 또는 특정 TABLE 에 대한 권한만 부여 : GRANT ALL PRIVILEGES ON database_name.* TO 'ward'@'%';
    • CRUD 작업에 필요한 최소한의 권한만 부여 : GRANT SELECT, INSERT, UPDATE, DELETE ON database_name.* TO 'ward'@'%';
    • 변경된 권한 반영 : FLUSH PRIVILEGES;

 

 

  • MySQL 에서 나가기 
exit;

MySQL 설정 변경

sudo vi /etc/my.cnf

  • #로 시작하는 줄은 주석으로 필요한 설정을 [mysqld] 섹션 아래에 추가하면 된다.

 

외부 접근 허용하기

  • [mysqld] 섹션 아래에 커서를 놓고 i 키를 눌러 삽입 모드로 전환한다.
  • bind-address = 0.0.0.0와 port = 3306 를 입력한 뒤, Esc 키를 눌러 삽입 모드를 종료한다.
  • :wq를 입력하고 Enter 키를 눌러 파일을 저장하고 vi 편집기를 종료한다.

sudo systemctl restart mysqld
  • MySQL 서버를 재시작하여 변경 사항을 적용한다.