이전 포스팅에서 AWS EC2인스턴스에 아파치 서버를 구축하고 php와 연동하는 작업을 했습니다.
이제 여기에 MySQL로 DB서버를 만들고 PHP와 연결해보겠습니다.
일단 mysql을 설치해줍니다. (필요하다면 client도 설치하세요)
sudo apt-get install mysql-server
설치가 완료됐다면 이제 외부에서 데이터베이스에 접속할 수 있게 만드는 작업을 시작합니다.
일단 루트계정으로 접속합니다.
sudo mysql -u root -p
현재는 비밀번호가 설정되어있지 않으니 엔터를 치시면됩니다. 만약 루트계정 비밀번호가 있다면 입력해주세요.
이제 외부에서 접속할 계정을 만들고 권한을 주겠습니다.
## 오직 내 PC안에서만
create user 'sample'@'localhost' identified by '1234';
## 현재 해당 계정을 가지고 있는 PC의 IP주소 를 통해서만 접근 허용
create user 'sample'@'현재 PC의 IP주소' identified by '1234';
## 다른 모든 PC에서 접근 허용
create user 'sample'@'%' identified by '1234';
외부에서 접근 가능하게 하려면 마지막 라인처럼 계정을 만들어주시면 됩니다.
use mysql;
## 권한부여 (위에서 생성한 유저에 부여하면 된다)
GRANT ALL PRIVILEGES ON *.*TO 'sample'@'%';
FLUSH PRIVILEGES;
## 권한 확인(안보인다면 mysql 나갔다가 다시 들어와서 확인)
show grants for '사용자'@'접속위치';
exit;
여기서는 모든 DB및 테이블에 대한 권한을 주었지만 특정 테이블이나 DB에만 권한을 주어도 됩니다. :)
이 단계에서는 아직 외부접속이 안됩니다. mysql 설정파일을 수정하기 위해 아래의 명령어를 입력해주세요.
cd /etc/mysql/mysql.conf.d
sudo nano mysqld.cnf
나노 에디터로 파일이 열리면 bind-adress를 아래와 같이 수정해줍니다. (default는 127.0.0.1)
bind-address = 0.0.0.0
나노에디터를 나와서(ctrl+x) mysql 서비스를 재시작합니다.
sudo service mysql restart
이제 AWS EC2 보안그룹 페이지 설정으로 가서 mysql 허용 IP를 추가해줘야합니다.
설정을 편집할 보안그룹을 체크하면 인바운드 규칙을 편집할 수 있는 창이 뜹니다. Edit inbound rules를 눌러주세요.
Add rule 버튼을 누르면 새 Inbound rule이 추가됩니다. Type과 Source type을 위와 같이 해주신 뒤 아래 주황색 버튼(Save rules)을 클릭하시면 설정이 저장됩니다.
외부접속이 가능한지 간단하게 파이선을 이용해서 확인해보겠습니다. 일단 테스트용 테이블을 만듭니다.
create table temp_tb(
id int primary key not null auto_increment,
temp integer,
dt timestamp not null default now()
);
아래는 파이선코드입니다. 파이선으로 db를 연결하는 내용에 대해서는 추후 포스팅할 계획입니다.
import serial
import pymysql
db = pymysql.connect(host='IPv4퍼블릭IP', port=3306, user='sample', passwd='password', db='blog', charset='utf8')
cursor = db.cursor()
sql = "INSERT INTO temp_tb(temp) values(18);"
cursor.execute(sql)
db.commit()
위의 코드를 .py 확장자로 저장하고 터미널에서 실행시켜주세요. ex) python blog.py
무사히 들어갔습니다.:)
'AWS' 카테고리의 다른 글
[AWS EC2]아파치 웹서버와 PHP연동 (EC2서버로 파일전송) (1) | 2020.03.06 |
---|---|
[AWS EC2]웹서버 구축 - ubuntu에 apache웹서버 만들기 (0) | 2020.03.06 |
[AWS EC2] 시작 - ubuntu 서버용 인스턴스 생성 및 원격접속 (0) | 2020.02.25 |