local과 EC2 연결 (mysql)

yoon__0_0·2024년 5월 16일
0

수업연관공부

목록 보기
3/7

MySQL EC2 생성

  • EC2에 있는 MySQl을 내 local 에서 활용할 수 있도록 설정 권한을 변경해줘야 함.

1) mysql 설치하기

  • 설치
sudo apt mysql-server
  • 버전확인
    • 내 버전 (mysql Ver 8.0.36-2ubuntu3 for Linux on x86_64 ((Ubuntu)))
mysql --version

2) mysql로 들어가기

  • 원래 새로 깔면 따로 비밀번호가 존재하지 않기 때문에 그냥 enter치면 됨.
  • MySQL root 는 인증 방식을 Local 에 있는 socket 으로 하기때문에 root 권한이 있어야만 연결이 가능하므로 sudo로 들어가줘야 가능함.
sudo mysql -u root
  • sudo 없이 사용하게 되면 다음과 같은 오류가 생김

3) 계정 외부 접속 허용

3-1) 계정 새로 생성

  • root 계정으로 들어가서 작업하는 것은 보안에 취약하기 때문에 새롭게 계정을 만들어서 그 계정을이용하자

    • 원래 기본적으로 host는 localhost로 설정되는데, 우리는 모두가 접근할수 있도록 하기 위해서 '%'을 이용함
    • plugin 방법이 다양하게 있는데, 우리는 mysql_native_password 방식을 이용함
    create user 'Test'@'%' identified with mysql_native_password by 'password'

  • 계정에게 권한 부여

    • root 계정이 가지고 있는 모든 권한을 부여해줌
    grant all privileges on *.* to 'root'@'%';

  • 계정 설정값들 확인하기

    SELECT User, Host, plugin FROM mysql.user;

3-2) root 계정을 이용

  • 원래 root 계정의 pulgin방식인 socket 방식을 password 방식으로 변경시켜줌
  • root를 사용할꺼면 권한 부여를 해주지 않아도됨
    alter user 'root'@'localhost' identified with mysql_native_password by 'password';
  • 원래 있던 root 계정을 모두가 들어올 수 있게 update하기
      update mysql.user set Host="%" where User='root' and Host='localhost';

4) IP 외부 접속 허용 설정해주기

  • 설정파일로 들어가기 (이건 ubuntu 계정에서)
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf 
  • 나만 들어갈 수 있던 주소를 모든 IP가 들어올 수 있도록 변경해주기

6) 서버 재시작

sudo systemctl restart mysql

EC2 보안 설정

  • EC2에 들어가서 인바운드 규칙 수정해주기
  • mysql이 사용하는 3306 port 열어주기

DBeaver, EC2 연동

1) DBeaver 들어가서 db 연결해주기 - mysql로 선택

2) setting 해주기

  • Server Host : 내 ec2 public IP
  • Database : 따로 지정하지 않아도 되고 해도되고~
  • Username : 내가 위에서 설정한 user 이름
  • password : user의 password
profile
신윤재입니다

0개의 댓글