서버 & 네트워크
MySQL 외부에서 접속하기
자바지기
2021. 9. 17. 20:13
반응형
AWS 서버 구축에 이어서 AWS EC2 MySQL 서버에 외부 접속하기
외부 접속을 위한 툴로는 DataGrip을 사용한다.
1. MySQL 사용자 생성하기
sudo mysql -u root -p
mysql> create user 'seongwoo'@'%' identified by 'password';
사용자를 생성할 때 다음과 같이 설정한다.
'seongwoo'@'%' : 모든 ip주소에서 seongwoo 사용자로 접근 가능
'seongwoo'@'localhost' : 내부에서만 seongwoo 사용자로 접근 가능
'seongwoo'@'x.x.x.x' : 지정 ip 주소에서만 seongwoo 사용자로 접근 가능
password에는 원하는 비밀번호를 적어준다.
2. 사용자 생성 확인하기
mysql> use mysql;
mysql> select user, host from user;
3. 데이터베이스 생성
mysql> create database seongwoodb
4. 데이터베이스 권한 부여
mysql> grant all privileges on seongwoodb.* to 'seongwoo'@'%';
위의 코드로 seongwoo 계정에 seongwoodb 데이터베이스의 모든 테이블(seongwoodb.*)에 모든 권한(all)을 부여하였다.
5. MySQL 외부 접속 설정
/etc/mysql/mysql.conf.d/mysqld.cnf (MySQL 설정 파일)을 수정해야 한다.
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
초기에 bind-address가 127.0.0.1로 설정되어있다.
이것을 0.0.0.0으로 바꾼다. (주석으로 처리해도 된다.)
sudo service mysql restart
재시작을 통해 변경사항을 적용한다.
6. 인스턴스 인바운드 규칙 설정
MySQL 규칙을 추가해준다. ( 3306 포트를 열어준다 )
7. DataGrip 사용하기
DataGrip에서 데이터베이스를 생성한다.
- Name: 원하는 이름
- Host: EC2 인스턴스의 공인 IP주소
- User & Password : 위에서 만든 MySQL의 사용자와 비밀번호
입력 후 Test Connection을 진행한다.
8. DataGrip 작동 확인
show databases;
위의 코드를 입력하여 확인한 결과 외부 접속이 잘 되는 것을 확인했다.
반응형