EC2 인스턴스 서버에서 root계정으로 접속해서 계정을 만든다.
$ sudo mysql
mysql> create user 'admin'@'%' identified by '비밀번호';
//만든 계정 확인
mysql> use mysql;
mysql> select user, host from user;
그리고 admin계정으로 조회할 수 있는 데이터베이스 및 테이블을 생성한다.
mysql> create database test;
mysql> use test;
mysql> create table ttest(test1 varchar(100), test2 varchar(100));
mysql> insert into ttest(test1,test2) values('10','20');
mysql> insert into ttest(test1,test2) values('20','30');
mysql> grant all privileges on test.* to 'admin'@'%';
mysql> flush privileges;
mysql> show grants for 'admin'@'%';
test라는 데이터베이스에 대한 모든 권한을 admin 계정에게 준 것이다.
그리고 flush privileges는 grant라는 테이블을 즉시 리로드해서 변경 사항을 즉시 반영하게 하는 명령어이다.
이로써 admin은 test에 대한 모든 권한을 가지게 되었다.
원격 접속하기 위한 계정 설정은 끝났고 이제 원격 접속을 가능하게 MySQL 설정 파일을 변경하여야한다.
$ cd /etc/mysql/mysql.conf.d
$ sudo vi mysqlc.cnf
안에 bind-address가 127.0.0.1로 되어있는데, 외부 접속을 허용해주기 위해 이를 0.0.0.0으로 바꿔준다.
AWS EC2 인스턴스에서도 인바운드 규칙을 설정해주어야한다.

MySQL이 사용하는 포트인 3306도 인바운드 규칙에서 허용해준다.
$ sudo dervice mysql relaod
MySQL을 재실행해준다.
로컬에서 원격 데이터베이스로 붙을 때 사용하는 MySQL의 대표적인 GUI 클라이언트는 Workbench(무료), SQLyog(유료), Sequel Pro(맥 전용), DataGrip(유료) 등이 있다. 각각의 도구마다 큰 차이가 없으니 본인이 가장 좋아하는 툴을 사용하면 된다.
무료인 Workbench를 이용하겠다.
공식 사이트에서 다운받고 설치를 했다
Workbench를 설치하면 아래와 같이 새로운 연결로 로그인하는 창이 뜬다.

아래 사진과 같이 설정을 해준다.
Connection Name에는 인식할 수 있는 이름을
Hostname에는 인스턴스의 퍼블릭 IPV4 주소
Username에는 MySQL에 접속하기 위해 만들었던 admin게정을
그리고 Password에는 Store in Vault를 누르면 아래와 같이 따로 비밀번호를 넣는 칸이 나온다.
비밀번호를 넣고 ok를 누르고 Test Connection을 누르면 연결이 완료된다.


짜잔 원격 접속 완료!!