$ 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');
2. 데이터베이스 접근 권한 주기
mysql> grant all privileges on test.* to 'admin'@'%';
mysql> flush privileges;
mysql> show grants for 'admin'@'%';
test라는 데이터베이스에 대한 모든 권한을 admin 계정에게 준 것입니다. 그리고 flush privileges는 grant라는 테이블을 즉시 리로드해서 변경 사항을 즉시 반영하게 하는 명령어입니다. 이로써 admin은 test에 대한 모든 권한을 가지게 되었습니다.
3. MySQL 외부 접속 설정
원격 접속하기 위한 계정 설정은 끝났고 이제 원격 접속을 가능하게 MySQL 설정 파일을 변경하여야합니다.
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
안에 bind-address가 127.0.0.1로 되어있는데, 외부 접속을 허용해주기 위해 이를 0.0.0.0으로 바꿔줍니다.
(i를 누르면 편집이 가능하고 편집이 완료되면 ESC버튼을 누릅니다)
(그후 :wq 를 입력해준후 Enter를 눌러 저장하면서 편집기를 나와줍니다.)
AWS EC2 인스턴스에서도 인바운드 규칙을 설정해주어야합니다.
AWS EC2에 Linux 인스턴스에 보안그룹에 인바운드 규칙에 들어가 MySQL에 대한 규칙을 추가해줍니다.
이제 서버에서 생성한 데이터베이스를 로컬에서 접속하도록 하겠습니다.
mysql workbench에 접속해줍니다.
순서대로 진행해줍니다.
1번 : 눌러 Connction를 진행해줍니다.
2번 : 알아볼수 있게 이름을 정해줍니다.
3번 : 인스턴스에 퍼블릭 IPv4 주소를 입력해줍니다.
4번 : 생성하고 권한을 줬던 admin으로 등록해줍니다.
5번 : 계정 생성에 설정한 비밀번호를 입력해줍니다.
6번 : 테스트 커넥션을 통해 위와 같은 화면이 나와야합니다.
7번 : OK를 눌러 최종적으로 커넥션을 진행합니다.
셀렉트문을 통해 계정 생성과 같이 생성했던 테이블과 내용들이 정상적으로 조회되는것을 확인할 수 있습니다.