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
을 누르면 연결이 완료된다.
짜잔 원격 접속 완료!!