EC2 인스턴스 생성 ~ war 톰캣배포 (4)

tyang·2021년 7월 21일
0

ec2

목록 보기
4/5
post-thumbnail

개발환경 : ubuntu, mysql, mac os

⭐️비전공자가 작성한 글이므로 전문적이지 않을 수 있습니다.
⭐️구글에 검색하면 나오는 정보들을 입맛에 맞게 다시 정리한 글입니다. 부족한 부분이 있을 수 있습니다.
⭐️⭐️보안에 굉장히x100 취약하게 만들었습니다. 개인 공부겸 정리용으로 작성한 글입니다.⭐️⭐️

1.mysql server 설치해주기

# apt-get install mysql-server

해당 명령어를 통해 mysql 을 설치해줍니다.
(첫글에서 mysql5.7을 사용한다고 적어놨던거 같은데 .. 전에 설치한 방법이랑 다른 방법으로 설치해서 그런지 8.0이 설치되었습니다..)

# mysql -u root -p

으로 설치된 mysql에 접속해줍니다.
첫 비밀번호는 설정 되지 않은 상태라서 엔터를 눌러주시면 됩니다.
하지만! 얼마 없는 보안... 비밀번호라도 바꿔줍시다..

mysql> use mysql;
mysql> select host, user, authentication_string from user;
mysql> alter user 'root'@'localhost' identified with mysql_native_password by '바꿀 비밀번호';

로 변경해줍니다.

2.mysql 외부 접속 허용해주기

# vi /etc/mysql/mysql.conf.d/mysqld.cnf 

를 통해 편집해줍니다.
(mysql.cnf 가 아닌 mysqld.cnf 입니다.)
i키를 눌러 편집모드로 변환후

#bind-address = 127.0.0.1

bind-address = 127.0.0.1 부분을 주석처리 해줍니다.
esc키를 눌러 편집모드 종료 후 :wq  로 저장해줍니다.

# /etc/init.d/mysql restart

로 mysql을 재시작 해줍니다.

이후 다시 mysql 을 실행해줍니다.

# mysql -u root -p

설정한 비밀번호 입력.
이후 어느 IP에서도 접속 할 수 있도록 %를 생성해줍니다.
저는 user를 root로 해줬지만 다른 user를 생성하는게 보안에 좋습니다.

mysql> use mysql;
mysql> create user 'root'@'%' identified by '비밀번호 설정';

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
가 뜰때 ...
분명 처음에 했을때는 .. 5.7이라 .. 이런거 안떴는데 ....

보안 단계를 낮춰주러 갑니다.

mysql> show variables like 'validate_password%';

로 현재 보안 단계를 확인해줍니다.

길이를 짧게 하고 싶으면 length 부분의 Value를 바꿔주면 됩니다.
저는 policy 의 MEDIUM 만 LOW 로 바꿔주겠습니다.

mysql>  set global validate_password.policy=LOW;


이후 다시
mysql> create user 'root'@'%' identified by '여덟글자만넘으면되는 비밀번호';
로 설정해줍니다.

mysql> grant all privileges on *.* to 'root'@'%' with grant option;

위와 같이 입력해주었다면

외부 접속 허용이 끝났습니다.
저는 intellij 를 통해 확인해주었습니다.

이름을 분류하기 쉽게 변경 후
HOST 부분에는 해당 인스턴스 주소를 적습니다.
user 는 % 가 설정된 user 이름을, 이후 password 까지 적습니다.
하단에 Test Connetion 을 통해 확인해줍니다.

3.mysql timezone 설정

ubuntu 에서 mysql 의 서버 타임은 system 을 따라가게 되어있습니다
mysql time zone 확인

SELECT @@global.time_zone,@@session.time_zone;



ubuntu time zone 확인

# date


보시다 시피 UTC 로 설정되어있습니다.

# dpkg-reconfigure tzdata


위와 같은 화면에서 Asia/Seoul을 선택해줍니다.


이후 다시 # date 를 입력해서 KST 로 설정되었는지, 현재 시간과 맞는지 확인해줍니다.
제대로 적용이 되었다면

# service mysql restart

mysql을 재시작해줍니다.

  • mysql5.7일때는 ?
    흐름은 비슷합니다.
    mysql5.7 버전에서 가장 귀찮았던 부분은 인코딩 설정이었습니다.
    적어뒀다고 생각했지만 .... 역시나 안적어 뒀네요 .... ㅠ ... 구글 검색으로 금방 해결 가능합니다...!

  • mysql 버전을 알고 싶을때
    mysql에 접속 후 status 를 입력하면 characterset 과 함께 해당 버전을 확인 할 수 있습니다.
    characterset 이 utf8mb4 라면 한글, 이모티콘까지 입력하는데 문제가 없습니다만,
    latin 혹은 utf8 (한글O,이모티콘X) 일 경우에는 설정을 바꿔줘야 합니다.


    다음글🧩: https://velog.io/@readordie021/EC2-%EC%9D%B8%EC%8A%A4%ED%84%B4%EC%8A%A4-%EC%83%9D%EC%84%B1-war-%ED%86%B0%EC%BA%A3%EB%B0%B0%ED%8F%AC-5

profile
크아악

0개의 댓글