본문 바로가기

IT/FLASK

[FLASK] 2. DB 생성하기

반응형

☞ 운영 체제 : Linux Ubuntu 20.04.5 LTS - focal
☞ CPU : AMD Ryzen 7 5800H with Radeon Graphics (16 CPUs), ~3.2GHz
☞ 그래픽카드 : NVIDIA GeForce RTX3070 Laptop GPU

☞ IDE : Visual Studio Code

☞ Flask : Python 3.8, Flask 2.2.2, Flask-RESTful 0.3.9, Flask-SQLAlchemy 3.0.3

☞ DB : MariaDB 10.6.12

 


목차

 1. SQLAlchemy

 2. MariaDB

 3. DB 생성하기

 

 

 


 

 

 

 

① SQLAlchemy

※ SQLAlchemy란?

SQLAlchemy는 Python용 오픈 소스 SQL 툴킷 및 ORM으로 알려져 있다. 여기서 ORM은 Object Relational Mapping의 약자로 개체 관계형 매핑이라는 뜻을 갖고 있는데 이는 사용자가 생성한 객체와 RDB(Relational DataBase)의 Entity 간 자동 매핑을 의미한다. 매핑 시 양 모델 간의 호환 문제로 불일치가 생기는데 이때 SQL Query 없이 자동으로 SQL을 채워 넣어 보완해 주는 것이 ORM의 역할로 볼 수 있다.

 

 

☞ SQLAlchemy Documentation

 

Flask-SQLAlchemy — Flask-SQLAlchemy Documentation (3.0.x)

 

flask-sqlalchemy.palletsprojects.com

 

※ 설치 & 설치 확인

SQLAlchemy는 기본적인 4가지 Query(CRUD)를 통해 Flask와 함께 사용할 수 있다. Flask가 아닌 다른 프레임워크와도 사용할 수 있어 Flask용 SQLAlchemy는 설치하는 방법이 따로 있다.

 

 

# 설치
pip install flask-sqlalchemy

# 설치 확인
pip show SQLAlchemy

 

 

 


② MariaDB

※ MariaDB란?

MariaDB는 MySQL 데이터베이스 시스템을 기반으로 MySQL의 단점을 보완하여 개발된 관계형 데이터베이스 관리 시스템(RDS)이다. MySQL을 기반으로 개발된 소프트웨어이다 보니 데이터, 클라이언트 API, 프로토콜의 구조, 클라이언트 공유 라이브러리가 호환된다. MySQL 보다 개발이 수월하고 다양한 기능이 생겼기 때문에 많은 웹 개발자가 사용하고 있다

 

 

☞ MariaDB Documentaion

 

Documentation - MariaDB.org

As MariaDB Server (and its predecessor MySQL) has been used around the world for over 20 years, there are huge amounts of learning resources and documentation available. … Continue reading "Documentation"

mariadb.org

 

※ 설치 

# 기본 설치
sudo apt install mariadb-server mariadb-client
sudo mysql_secure_installation

# MariaDB Python Connector/C 설치 필수
sudo apt install libmariadb-dev
pip3 install mariadb

 

 

상세한 기본 설치 내용은 taeho님의 블로그에 기록되어 있으니 참고하면서 설치하자. 터미널에서 설치할 때는 계정에 대해서 Y/N 선택형으로 물어보는 것이 있기 때문에 내용을 읽어보면서 설치하는 것을 추천한다.

 

터미널에서 설치할 때 설정한 MySQL root의 패스워드를 기억해 두자.

 

 

☞ MariaDB 설치

 

우분투 20.04 에 MariaDB 설치하기

python의 웹 프레임워크인 Flask를 테스트하면서 DB를 연동해야할 일이 생겼다. MySQL을 설치할지 아니면 MariaDB를 설치할지를 고민하다 MariaDB를 설치하기로 했다. [Flask 웹 프레임워크] Blueprint를 이용

blogger.pe.kr

 

taeho님의 블로그에서는 웹 서비스 관련하여 양질의 정보를 얻을 수 있었다. 특히, 지금 개발에 사용하려는 도구로 flask - RESTful - SQLAlchemy - MariaDB 사용하려는데 많은 블로그를 찾아보았지만 이렇게 전문적인 정보를 세세하게 기록해 준 블로그는 위 블로그뿐이었다.

 

 

 

※ 접속 테스트

# 터미널 - MariaDB 접속 명령어
mysql -u root -p

 

 

 

 

# 데이터베이스 목록 출력
show databases;

# 버전 출력
select version();

 

 

 

 

 

 


③ DB 생성하기

먼저, MariaDB에 접속하여 DB를 생성해주자.

 

# 터미널에 입력
mysql -u root -p

 

 

 

※ 사용자 계정 및 DB 생성

접속 명령어를 입력하고 나서 비밀번호는 MariaDB를 설치했을 때 입력했던 것을 적으면 된다. 그리고 초기에 설정해야할 것이 조금 있다 아래에 내용을 적어놓았으니 하나씩 따라서 적어보자.

 

 

# 사용자 생성 및 비밀번호 설정
# create user '사용자 이름'@'localhost' identified by'x비밀번호@';
create user 'yasun95'@'localhost' identified by 'x1234@';

# 데이터베이스 생성
# create database 데이터베이스 이름;
create database refutsal;

# 사용자에 모든 권한 부여
# grant all privileges on 데이터베이스 이름.* to '사용자 이름'@'localhost';
grant all privileges on refutsal.* to 'yasun95'@'localhost';

 

 

 

 

localhost를 사용하는 이유는 현재 IP에서만 접속할 수 있는 계정으로써 사용하기 위함이다. 특정 IP에서 사용하려면 다른 방법이 있을 것 같다.(localhost 자리에 외부 IP 주소를 적는다던지...?)

 

사진 속에서 MariaDB 옆의 [(none)]은 root 계정으로 로그인을 하더라도 선택한 데이터베이스가 없기 때문에 none으로 나오는 것이다. 이는 use 명령어를 통해 데이터베이스를 변경할 수 있으니 참고바란다.(예시 명령어 - use refutsal;)

 

막 생성한 refutsal에는 아 mysql 데이터베이스에 있는 경우 아래의 명령어를 통해 생성한 계정, 데이터베이스, 권한을 확인할 수 있다.

 

 

# MariaDB 터미널에 입력
select host,user from mysql.user;

 

 

 

 

만약 mysql의 user 테이블에서 'localhost'의 'yasun95'라는 사용자를 제거하고 싶으면 'drop' 명령을 통해 제거할 수 있다.(예시 명령어 - drop user 'yasun95'@'localhost')

 

초보인 입장에서 쓰는 명령은 한정되어 있겠지만, help; 를 입력하면 어떤 명령어를 사용할 수 있는지 나오니 한 번 확인하고 사용하면 좋을 것 같다.

 

 

 

 

 

 

 

 

※ phpMyAdmin 설치

phpMyAdmin은 MySQL과 MariaDB를 위한 데이터베이스 관리 툴이다. 위 MariaDB를 통해 데이터베이스를 생성했던 것을 포함하여 웹 페이지 상에서 데이터베이스 생성, 테이블 작성 또는 수정, 사용 권한 관리 등 다양한 기능을 제공한다. 무엇보다도 터미널이 아닌 웹 UI를 통해 관리할 수 있다는 점이 매력적이다. 

 

초기에 해야하는 작업들과 알아야하는 개념들이 상당히 많다. 대신 미리 설치해서 준비해놓으면 나중에는 해당 툴을 이용해 작업하기 편할 것 같다. 귀찮아도 최대한 귀찮지 않도록 노력한 것이 라이브러리, 패키지, 모듈 들이기 때문에 잘 활용해보려한다.

 

 

sudo apt install phpmyadmin

 

 

설치의 모든 부분은 아래의 씨실과 날실님의 블로그를 보고 진행하시면 될 것 같습니다.

 

 

☞ 씨실과 날실님의 phpmyadmin 설치

 

우분투 20.04에서 phpMyAdmin 설치 01 - 저장소 설치

[관련 게시물] 2021.02.20 - [서버 운영/APM 서버 구축] - 우분투 20.04에서 phpMyAdmin 설치 01 - 저장소 설치 2021.03.15 - [서버 운영/APM 서버 구축] - 우분투 20.04에서 phpMyAdmin 설치 02 - Apache 서버 관리자를 위

wnw1005.tistory.com

 

 

☞ /etc/apache2/apache.conf 내용 수정

# /etc/apache2/apache.conf에 삽입
# Include phpMyAdmin
Include /etc/phpmyadmin/apache.conf

 

 

'/etc/apache2/apache.conf 파일을 수정하여 위 Include 내용을 삽입하고 저장하자.

 

 

 

※ phpMyAdmin 접속

# phpMyAdmin 접속 방법
# 브라우저 웹 주소창에 입력 
http://localhost/phpmyadmin

 

 

 

 

  • 사용자명 : root
  • 암호 : 설정한 비밀번호

 

phpMyAdmin에 접속하고 왼쪽에 보면 아까 MariaDB에서 생성했던 데이터베이스 refutsal이 있는 것을 확인할 수 있다. 만약 아래에 phpMyAdmin 설정 스토리지에 대한 경고문이 나오면 클릭하여 'phpmyadmin' 데이터베이스를 생성하여 해결하면 된다.

 

 

 

 

phpMyAdmin의 홈에서 처음 생성한 데이터베이스 refutsal을 클릭하면 아무것도 나오지 않는다. 다음 포스트에서는 이곳에 테이블을 생성하여 웹으로 보내는 작업을 해보겠다.

 

 

반응형

'IT > FLASK' 카테고리의 다른 글

[FLASK] 4. 웹 페이지에 동영상 띄우기(+ YOLOv5)  (0) 2023.02.24
[FLASK] 3. 간단한 API 만들기  (0) 2023.02.14
[FLASK] 1. Flask 설치와 실행  (0) 2023.02.06