DevOps/AWS

[AWS] EC2에 MySQL 설치하기

샤아이인 2022. 3. 19.

다른 여타 어느 블로그의 글 보다 자세하게 설명 하였습니다. 도움이 될 수 있길!!!

 

총 3개의 글 시리즈로 작성할 것 입니다!!

1. EC2 인스턴스 만들기 (이전 글)

2. AWS의 EC2에 MySQL을 설치하고, Sequal Ace로 EC2의 mysql에 접속하기 (현재 글)

3. SpringBoot project 배포하기 (다음 글)

 

2. EC2에 MySQL 설치하기

우선 이전 EC2 인스턴스 생성글의 마지막 부분인 EC2 서버에 터미널로 접속한 부분에서부터 시작하자.

 

1. 서버 업데이트 해주기

보통 리눅스 처음 깔면 많이 해주는 패키지 인스톨러 업데이트를 해주자.

sudo apt update
sudo apt upgrade

 

2. MySQL 설치하기

위와 같이 입력하면 설치가 가능하다! 일정 시간이 지나면 설치가 완료 될 것 이다.

설치가 정상적으로 됬는지 궁금하다면 mysql --version 명령을 입력하여 버전정보 확인이 가능하다면 설치 완료된 것 이다.

 

3. MySQL 실행하기 (실패해야 정상입니다 ㅎㅎ)

생각해보면 우리는 MySQL을 설치할 때 비밀번호를 설정할 적이 없다!

그럼 어떻게 접근할까??

 

4. mysql secure 초기화 해주기

다음과 같이 sudo를 통해 mysql_secure_installation을 입력해주자.

이때 패스워드 설정을 하게 된다.

맨 처음 강력한 암호 키 사용 여부는 귀찮아서 n을 선택했다. 보안이 필요하다면 y를 입력해주면 된다.

나머지도 읽어보면서 n 또는 y 를 입력해주면 된다. 나는 처음꺼 빼고는 다 y를 입력해 줬다.

 

5. root로 mysql 접속하기

위에서 보안 초기화를 하면서 비밀번호를 설정했지만, 설정한 비밀번호를 통해 접근하려 하면 실패하게 된다.

다음 사진의 첫줄을 보자. -p 까지 입력하여 비밀번호를 입력했지만 거부 되었다.

 

내가 알기로는 mysql 8.0 부터 이렇게 바뀌었다. auth 소켓을 이용하여 보안이 강화되었다고 한다.

이전 버전은 아마 보안 초기화 하면 초기화 할때 등록한 password로 접속이 가능하다.

 

하지만 8.0 부터는 되지 않는다. 따라서 sudo 를 추가해서 접속해 줘야 한다.

성공적으로 접속할 수 있게 되었다.

 

6. 연습용 DB 와 사용자 계정 추가하기

많이들 알고 있는 scott, tiger 계정을 만들어 보자.

다음과 같이 입력하면 된다.

1) tigerdb를 만들고

2) scott 유저를 만들면서 비밀번호를 tiger로 설정한다

3) tigerdb의 모든 데이터에 scott이 접속 가능하도록 한다

4) 계정에 대한 권한을 부여한다

 

7. Scott 계정으로 접속하기

기존 root 계정은 exit를 입력하면 빠져나올 수 잇다.

이후 다시 mysql -u scott -p 를 입력하여 접속하자.

여기 까지 하면 사실상 다 완료 되긴 된거다.

하지만 매번 EC2 에 접속하여 계정에 로그인 하고 쿼리를 날리기는 매우 귀찮다.

GUI 툴인 Sequel Ace 를 통해 접속해 보자!

 

8. Sequal Ace로 접속해보기 (실패해야 정상)

맨 처음 접속하면 로딩만 엄청하다가 접속 실패하게 된다.

참고로 Host 에는 EC2 의 IP를 입력해주면 된다.

위에 빨간 박스를 보면 로딩을 엄청한다. 하지만 접속에 실패한다.

다음과 같은 에러 창이 뜬다.

서버에 접속할수가 없다는 뜻 이다.

사실 생각해보면 이전에 EC2를 만들때 SSH 로만 보안그룹을 열어 두었다. 따라서 접속이 안되고 있는 것 이다.

 

9. 보안그룹 인바운드 규칙 추가해주기

보안그룹 에 들어가 인바운드 규칙 편집을 눌러주면 다음과 같은 화면이 보인다.

위와 같이 MYSQL 유형을 선택하여 추가해 주자. 접근은 그냥 공부용이라 0.0.0.0/0 으로 해주었다.

 

다시 Sequel Ace 로 돌아가 접속을 누르면 또 연결이 안된다!! 뭐가 또 문제랑 말인가???

=> 다행이 이전과 는 다르게 서버에 접근은 된다. 로딩이 이전처럼 엄청 길지는 않을 것 이다.

다음 설정만 하면 이제 끝이다 거의 다 왔다!!

 

10. mysqld.cnf 찾기

우선 sudo -i 를 통해 root 계정으로 전환하자.

이후 /etc/mysql 폴더로 이동 한 후, mysqld.cnf 파일을 찾아야 한다.

 grep -r "bind" ./

위 명령어를 통해 bind 라는 단어를 검색하여 경로를 파악하자.

찾은 경로를 vim 에디터를 통해 수정해줘야 한다!

 

11. mysqld.cnf 수정하기

vim으로 접속하면 다음과 같다.

bind-address 와 mysqlx-bind-address 를 주석처리 해주면 끝난다!!

혹시 vim을 모르는 분이 있다면... 우선 vim으로 열면 위와 같은 화면은 보이는데, 화면 하단에 INSERT가 보이지 않을 것 이다.

i 키를 누르면 insert 모드로 변경된다. 이때 위에서 말한 부분에 가서 # 으로 주석 처리를 해주면 된다.

이후 esc를 누르면 화면 하단에 : 가 보이게 된다.

여기서 wq 를 입력한후 엔터를 치면 저장 후 종료되어 나가게된다.

 

12. 마지막 재부팅

이후 나와서 다음과 같이 재부팅 한번 해주면 끝난다!

Sequel Ace 로 드디어 접속이 가능하다!!

 

13. 추가사항 (Spring application.properties 설정)

# MySQl setting
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://EC2 ip:3306/db 이름
spring.datasource.username="유저 이름"
spring.datasource.password="비밀 번호"
spring.sql.init.platform=mysql

위와 같이 나는  preperties에 설정해 주었다!

댓글