본문 바로가기
aws

AWS EC2 Ubuntu MySQL 외부에서 접속하기 (feat. Workbench, datagrip)

by 초이사 2023. 4. 7.

인스턴스에 설치된 mysql에 외부에서 접속하는 과정을 정리한 글이다.

접속할 때, workbench를 사용했다.

 

 

Mysql 외부 접속 가능 계정 생성

$ sudo mysql -u root -p //root 계정 접속

//외부 접속 허용할 유저 생성
create user '사용자아이디'@'%' identified by '비밀번호';

//해당 유저(사용자아이디)에게 모든 DB 스키마에 대한 권한을 허용
mysql> grant all privileges on *.* to '사용자아이디'@'%';

//권한 변경 저장
flush privileges;

//부여된 권한 조회
show grants for '사용자아이디'@'%';

보안을 위해 root가 아닌 별도의 아이디를 만들어서 사용하는 것을 추천한다고 한다.

비밀번호는 이전에 보안등급에 설정한 강도에 맞춰서 작성해주어야 한다.

외부 접속 허용 유저 생성

 

 

 

외부 접속 설정

$ cd /etc/mysql/mysql.conf.d
$ sudo vi mysqld.cnf

기본값으로 bind-adress가 127.0.0.1로 되어 있는데, 외부에서 접속이 가능하도록 그 부분을 주석처리하거나 127.0.0.1을 0.0.0.0으로 바꿔준다.

변경
변경 후 저장

 

 

AWS EC2 인스턴스 인바운드 규칙

AWS EC2 -> 보안그룹 -> 해당인스턴스 -> 인바운드 규칙

인바운드규칙

위 밑줄친 규칙이 추가되어 있어야 한다.

 

 

 

Workbench 설치 및 접속

먼저 mysql 재실행

$ sudo service mysql restart

 

Workbench 설치 및 접속

https://dev.mysql.com/downloads/workbench/ -> Download -> No thanks, just start my download 클릭

next 계속하고 install

 

1. Mysql Connections +클릭

  • Connection Name: 원하는 이름으로 작성
  • HostName: 인스턴스의 퍼블릭 IPv4 주소 (탄력적 IP)
  • Username: 외부 접근 허용한 유저명(사용자 아이디)
  • Password: 유저 생성시 설정한 비밀번호, Store in Vault.. 버튼눌러서 입력

2. 왼쪽 아래 TestConnection 클릭

아래 창이 뜨면 접속에 성공했다는 의미

Test Conection 성공

 

ok를 누르면

외부 접속에 성공해서 방금 만든 Connection이 생성된다.

Users ane Privileges

들어가서 Users and Privileges를 보면 생성한 유저가 등록되어 있다.

 

 

 

2023.04.22 추가

datagrip 설치 및 접속

workbench  대신 datagrip을 사용해도 된다. datagrip 사용한 과정도 정리해두고자 추가한다.

datagrip 설치 및 접속

 

1. new project로 프로젝트 생성

2. 오른쪽 상단에 + 클릭 -> datasource -> mariadb

ec2를 생성할 때, mariadb를 선택했어서 mariadb로 새로운 datasource를 생성했다.

오른쪽 상단에 + 클릭

  • Name: 원하는 이름으로 작성
  • Host: 인스턴스의 퍼블릭 IPv4 주소 (탄력적 IP)
  • User: 외부 접근 허용한 유저명(사용자 아이디)
  • Password: 유저 생성시 설정한 비밀번호

2. TestConnection 클릭

아래와 같이 드라이버 파일이 없다고 뜬다면 다운받아준다.

설치 후 다시 작성하고 TestConnetion 

TestConnection  성공

위와 같이 나오면 접속에 성공한다는 의미다. 이제 ok를 눌러서 생성해준다.

 

 

 

 

 

참고한 글

댓글