⭐️비전공자가 작성한 글이므로 전문적이지 않을 수 있습니다.
⭐️구글에 검색하면 나오는 정보들을 입맛에 맞게 다시 정리한 글입니다. 부족한 부분이 있을 수 있습니다.
⭐️⭐️보안에 굉장히x100 취약하게 만들었습니다. 개인 공부겸 정리용으로 작성한 글입니다.⭐️⭐️
# 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 '바꿀 비밀번호';
로 변경해줍니다.
# 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 을 통해 확인해줍니다.
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