우리는 리눅스 환경에서
sudo mysql -u root -p
라는 명령어를 통해서 MySQL에 접속할 수 있다. 하지만, 노트북 OS가 리눅스가 아니라면, 데이터베이스에 접근하기 위해 매번 가상머신을 켜는 작업은 번거롭다. 그렇다면, 외부에서 데이터베이스에 접근할 수 있는 방법은 없을까?
우리는 포트포워딩을 하기 위해 AWS EC2에서 인바운드 보안 정책을 변경한 경험이 있을 것이다. 그때처럼, AWS EC2 보안 정책을 변경하면 된다.
MYSQL/Aurora라는 유형으로 모든 IPv4 아이피와 IPv6 아이피가 접근 가능하도록 열어준다. MariaDB를 사용하더라도 MYSQL/Aurora 유형으로 열어주면 된다.
sudo mysql -u root -p
create user 'username'@'%' identified by 'password';
sudo mysql 명령어를 통해 mysql을 실행하고
유저를 생성한다.
이때, create user에서 '{username}'@'{hostname}'으로 유저를 생성할 수 있는데, 여기서 %는 모든 호스트를 연결할 수 있다는 뜻이다.
grant all privileges on [database name].* to '{username}'@'{hostname}';
flush privileges;
show grants for '{username}'@'{hostname}';
GRANT 명령어를 통해 권한을 유저에게 부여하고, FLUSH PREVILIGES;라는 명령어를 통해 변경된 내용을 저장한다.
vim /etc/mysql/mysql.conf.d/mysqld.cnf
위 경로 파일을 편집하여 MySQL의 외부 접속을 허용한다.
bind-address를 0.0.0.0으로 편집하여 모든 접근을 허락하면 된다.
DataGrip 다운로드 홈페이지에 들어가서 자신의 운영체제에 맞는 DataGrip 설치를 진행한다.
DataGript에 들어가서 좌측 상단에 있는 +표시를 눌러 Data Source를 선택한다.
Name에는 프로젝트 이름을 입력하고, Host에는 AWS EC2에서 발급받은 퍼블릭 IPv4 주소를 입력한다. 그리고, User에는 2번에서 만들었던 유저이름과 비밀번호를 입력하면 된다.
이제 해당 콘솔창에서 쿼리문을 입력하면 제대로 접속이 되어 실시간으로 쿼리문을 작성할 수 있다.