Maria DB 설치 후 계정 생성 및 권한 할당 with Python

IRISH·2022년 8월 5일
1

Python

목록 보기
2/3
post-thumbnail

✅ 개요

우리는 일반적으로 Data를 DB에 저장하고자 DBMS를 활용한다.
DBMS의 종류는 무궁무진하게 많다. MySQL, Mongo DB, Oracle DB 등등... 필자는 DBMS로 Maria DB를 채택했다.

단순하게 로컬로 Data를 DMBS로 삽입할 수는 있으나, 만약 Application이나 Web을 구축하는 상황에서 Data를 DBMS에 삽입하는 경우라면, 로컬에서 Data를 보낸다고 보기 보다는 외부에서 보내는 것으로 간주하는 개 더 바람직할 것이다.

이에 따라, Maria DB 설치 후, 외부에서 DMBS로 삽입하는 방법을 확인한다.

또한, Python 유저에게는 기쁜 소식이 될지도 모르는 것이 있다. 바로... 한 PC에서, Maria DB가 설치되어 있는 PC에 Python을 통해 DB에 Data를 삽입하는 방법이다!!! 참고로, 보내는 PC에서는 Maria DB가 설치되지 않는다. 또한, Maria DB뿐만 아니라, Data를 수신하는 PC의 IP만 있다면... 어느 DBMS에도 삽입할 수 있다.

이제 포스팅을 시작해보도록 하겠다.

✨ 사전 준비

이를 위해, 준비해야 할 것이다. 우선, 컴퓨터가 2대가 필요하다. 즉, 상호간 다른 두 개의 IP가필요하다는 의미이다. 이 2대에서 Maria DB 공식 홈페이지을 통해 Maria DB를 동일한 버전으로 다운로드해야 한다. 설치하는 방법에 대한 포스팅은 아니니, 다른 포스팅을 참고하여 설치하기 바란다.

설치 이후, 한 컴퓨터에서는 세션 이름을 생성한 후, DB를 CREATE하면 된다. 이 역할을 수행하는 PC를 A라고 하겠다.
또 다른 컴퓨터에서는, A에 대해 Data를 보내는 역할을 수행한다. 이 역할을 수행하는 PC를 B라고 하겠다.

또한, Python으로 DMBS에 Data를 삽입하고자 하는 인원은, Python을 프로그래밍 하는 프레임워크를 VS Code든, PyCharm이든, 아니면 다른 무언가든 상관 없으니 그냥 Python을 프로그래밍할 수 있는 공간만 있으면 된다.

1) ~ 3)까지는 두 PC에서 Maria DB를 통해 Data를 주고, 받을 수 있는 방식을 작성하였다. 참고로 주고 받을 수 있는 방식만 작성했을 뿐, SQL문까지 써서 정상적으로 보내는 법까지는 작성을 안하였으니 참고 바란다.

4)는 Python에서 Maria DB로

👀 1) 방화벽 인바운드 규칙 새로 작성

※ MYSQL 10060 ERROR가 발생하는 이유: 방화벽에 의해서 막히거나, 자신의 공유기 설정 문제이다. 따라서, 이 문제 발생시 해당 문제를 먼저 해결할 것!

  1. 방화벽 및 네트워크 보안 > 고급설정 > 인바운드 규칙 > 새규칙
  2. 규칙종류: 포트
  3. 프르토콜 및 포트: TCP, 특정 로컬포트: 3306
  4. 작업: '연결허용'으로 선택 후 생성한다.

🔨 2) maria db 서버 세팅하기

  1. Maria DB 접속 (MySQL Client(Maria DB 10.6(x64))
  1. Client Server IP 계정 생성 후 권한 할당

🔎 3) Client IP에서 접속하기

  1. Command Prompt(MariaDB 10.6(x64)에서 접속하기
  1. HeidiSQL에서 접속하기

이와 같이 접속되며 사용하면 된다.

📁 4) Python 통해 DB에 Data 삽입하기

일단, 알고 있어야 할 것은 B에서 A의 IP, DBMS의 ID 및 PW 그리고 Database table 이름이다.
이것을 모르면 못 넣음...

import pymysql # 해당 라이브러리가 없으면 install을 먼저 할 것

# 전역변수 선언부
conn = None
cur = None

sql = "" # sql 변수

# 메인 코드
# conn = pymysql.connect(host='IP', user='PC A의 Maria DB ID', password='PC A의 Maria DB 패스워드', db='DB table 이름', charset='utf8') # 접속정보 형식
conn = pymysql.connect(host='1.2.3.4', user='helloworld', password='1234', db='member', charset='utf8') # 접속정보 사용 예

cur = conn.cursor() # 커서생성

sql = "INSERT INTO member(name, age, job) VALUE ('HongGilDong','25','doctor',);" # sql 변수에 Insert SQL문 입력 예시
cur.execute(sql) # 커서로 sql 실행

conn.commit() # 최종 저장 
conn.close() # 접속 종료

😎 참고 사이트

💥 Irish 깃허브

-> Irish Github

profile
#Software Engineer #IRISH

0개의 댓글