본문으로 바로가기

[AWS] 10-1.EC2 MySQL 설치

category 3. 웹개발/3_3 AWS 2021. 8. 24. 17:42
반응형

[AWS] 10-1.EC2 MySql 설치

 

안녕하세요. 갓대희 입니다. 이번 포스팅은 [ [AWS] EC2에 MySql 설치하기 ] 입니다. : ) 

 

1. MySql 직접 설치

1. 설치 가능 여부 확인

sudo yum list mysql*

 - yum list를 확인해보니 mysql server가 존재하지 않는다.

분명히 예전엔 yum 을 통해 설치가 가능했었던 것 같은데, 다른 방법을 통해 설치.

 - 편의상 루트 계정으로 전환하여 설치 시작.

sudo su

 

2. 최신 버전 MySql 다운로드 및 설치

 - 현재 시점에서, 최신 mysql 버전 확인 

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

 - 다음 명령어로 현재 나의 linux 환경에 맞는 버전 다운로드 및 설치

 

wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
yum localinstall mysql80-community-release-el7-3.noarch.rpm

 (또는)

 yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

 

 - 완료 후 다음 명령어를 통해 설치

yum install mysql-community-server

 

 

3. mysql 실행 및 상태 확인

sudo systemctl start mysqld
sudo systemctl status mysqld

 - 정상적으로 실행 된 것을 볼 수 있다.

 

4. characterset 설정

 - 나중에 어차피 하게될 characterset 설정을 먼저 하고 넘어 가도록 하자.

vim /etc/my.cnf

 - 가장 마지막 부분에 다음 내용을 추가해 주자.

[mysqld]
... 중략
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
skip-character-set-client-handshake

 

 - 변경된 설정을 적용하기위해, 재시작 하여 주자.

systemctl restart mysqld

 

※ 참고

▶ utf8mb4
 - UTF-8 인코딩은 4Byte 가변 길이 인코딩 방식이다.
 - 그런데 MySQL은 utf8을 3Byte로 구현했었고, 이후 utf8mb4(4Byte character set)을 추가했다.
 - MySQL 5.5, MariaDB 5.5 이후 버전에서만 사용할 수 있다.

 

5. root 비밀번호 찾기

 - MySQL을 설치하면 임시비밀번호가 log에 찍혀 있기 때문에, log를 통해 root 비밀번호를 알아내자.

cat /var/log/mysqld.log | grep 'temporary password'

 - root@localhost: 뒤에 있는 것이 비밀번호다.

 

6. 접속 및 비밀번호 변경

 - 다음 명령어를 통해 접속 및 비밀번호 입력

mysql -u root -p

 

 - 정상적으로 MySql접속 하였다면, root 비밀번호를 변경하여 주자.

mysql> alter user 'root'@'localhost' identified with mysql_native_password by '원하는비밀번호';

 

 - 현재까지 설정 정보(캐릭터 셋 등) 확인

 

7. EC2 보안 그룹(규칙) 설정

 - 본인의 보안 그룹 설정 창으로 이동 하자.

 - 인바운드 규칙 설정에 > 사용자 지정 TCP IP > 3306 포트 > 위치 무관으로 설정

8. Database 및 계정 생성

 - User 생성

CREATE USER '아이디'@'로컬/외부 접속' IDENTIFIED BY '비밀번호';

 - Database생성

CREATE DATABASE 데이터베이스명;

 - 권한 부여

GRANT ALL PRIVILEGES ON *.* to 'User명'@'%';

 - 변경내용 적용

FLUSH PRIVILEGES;

 - cnf 파일 수정 및 재시작

vim /etc/my.cnf
... 중략
bind-address=0.0.0.0
systemctl restart mysqld

 

※ 참고

 - Ubuntu 계열: /etc/mysql/mysql.conf.d/mysqld.cnf
 - 아마존 리눅스 등 CentOS 계열: /etc/my.cnf
 - 사실 보안을 위해 SSH 터널링을 활용, pem 키를 사용하여 접속하도록 하는게 안전하다.

 

9. 외부 접속 툴을 통한 접속 테스트

 - dbever

- 정상적으로 접속되는 것을 볼 수 있다.

반응형

댓글을 달아 주세요