'ㅍㄺㄻ/AWS'에 해당되는 글 1건

  1. 2015.02.05 EC2 인스턴스에서 MySQL 원격연결 설정하기

이미지 편집은 귀찮아서 일단은 글로만..

1. AWS 콘솔 설정

1-1. Security Group 생성

Security Group메뉴에서 새로운 Secutity Group을 생성한다. Inbound rule에 새 규칙을 추가해주고, Type에서 MySQL을 선택하고, Source에서는 My IP 또는 Anywhere를 선택해준다.


1-2. EC2 Instance에 Security Group Assign

Instance 메뉴에 가서 Security Group을 적용시킬 인스턴스에 커서를 갖다대고 우클릭을 하면 메뉴가 뜨는데 Networking -> Change Security Group을 선택한다. 그러면 Change Security의 목록이 뜨는데(기본 Security Group하나만 체크되있을것임) 1번에서 생성한 Security Group에도 체크해주고 Assign한다.



2. 리눅스 설정(우분투 기준)

2-1. 로컬호스트 바인드 해제

MySQL을 설치할 때 기본설정으로 진행하면 접속이 로컬에 바인드 되어 원격으로는 접속할수 없게 된다. 따라서 바인드를 직접 해제 해주어야함.

/etc/mysql/my.cnf 을 vim등의 편집툴로 열고(루트권한 필요)

bind-address = 127.0.0.1 이 되어있는 줄을 지우거나 주석처리하고 저장한다.

편집이 끝나면 sudo sevice mysql restart으로 MySQL을 재시작한다.


2-2. 방화벽에 MySQL 포트(3306) 허용

sudo ufw allow 3306

netstat -ntlp | grep 3306으로 제대로 LISTEN중인지 확인해본다.


2-3. MySQL 에서 원격 접속 권한을 가진 계정 추가

mysql -u root -p mysql

grant all privileges on mydb.* to 'user'@'%' identified by 'password';

여기에서 mydb는 원격 사용자에게 허용될 데이터베이스를 뜻하고, 이어지는 .*는 해당 데이터베이스 내의 모든 테이블에 대한 모든 권한을 부여하는것을 뜻함.

user는 추가할 사용자의 id, password는 비밀번호로, 맘대로 입력하는 것이지 그대로 user와 password를 입력하란 뜻이 아님.

@뒤의 %는 모든 외부 주소에대해서 연결을 허용한다는 뜻으로, 특정 주소에서만 접속을 허용할거면 %대신 해장 ip주소를 입력하면 된다.

사용자 추가가 되었으면 즉시 적용을 위해 flush privileges;를 시켜준다.


Posted by 라나킴
,